当前位置: 首页 > news >正文

綦江集团网站建设友情链接的英文

綦江集团网站建设,友情链接的英文,成人2023学历提升政策,网站建设信息收集样例输入: 5 1 1 4 2 8 5 样例输出: 4 分析:看到这种对其中连续k个数进行修改的我们就应该想到答案是由三部分组成,因为求的是最长不下降子序列,那么我们可以找到一个最合适的断点i,使得答案是由区间[1…

样例输入:

5 1
1 4 2 8 5

样例输出:

4

分析:看到这种对其中连续k个数进行修改的我们就应该想到答案是由三部分组成,因为求的是最长不下降子序列,那么我们可以找到一个最合适的断点i,使得答案是由区间[1,i],[i+1,i+k],[i+k+1,n]三部分组成,其中区间[i+1,i+k]里面的数是可以任意变化的,那么我们只要在区间[1,i]和区间[i+k+1,n]中找到一个最长不下降子序列b1,b2,……,bm,那么我们就可以将区间[i+1,i+k]中的所有数变为某个bj,使得最长不下降子序列的长度为m+k,所以现在我们的关键问题就是为了求取m。

一般这种问题就是要设置一个前缀和一个后缀,表示含义如下:

f1[i]表示a[1~i]中以a[i]结尾的最长不下降子序列的长度
f2[i]表示a[i~n]中以a[i]开头的最长不下降子序列的长度

这两个数组显然可以用权值线段树预处理出来:

f1[i]:就是每次在加入a[i]之前,先看一下线段树中以小于等于a[i]的值结尾的最长不下降子序列的长度的最大值,然后在这个基础上+1即可得到

f2[i]:这个要从后往前遍历,这个是在每次加入a[i]之前,先看一下线段树中以大于等于a[i]的值开头的最长不下降子序列的长度的最大值,然后在这个基础上+1即可得到

注意当求出这个值后要用f数组对权值线段树进行更新

那么我们枚举前半段区间的最长不下降子序列端点i,那么也就代表最长不下降子序列是由a[1~i]中的一部分和[i+1~i+k]中的全部以及a[i+k+1,n]中的一部分组成,由于我们枚举的前半段区间的最长不下降子序列的末尾,那么我们就要在区间[i+k+1,n]中找到以大于等于a[i]的值开头的最长不下降子序列的长度最大值,这个直接在求解f2[]过程中刚好可以利用权值线段树得到。

答案还有可能就是只有两段区间,这个要分两种情况,一种是只有a[1~i]中的一部分和[i+1~i+k]中的全部,或者是只有[i+1~i+k]中的全部以及a[i+k+1,n]中的一部分组成,这两种情况直接用for循环遍历一遍即可得到,无非就是一种只用到f1[],另一种只用到f2[]。

细节见代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
#include<queue>
#include<vector>
#include<cmath>
using namespace std;
const int N=5e5+10;
int l[N],r[N],mx[N];
int a[N];
int f1[N],f2[N];
/*
f1[i]表示a[1~i]中以a[i]结尾的最长不下降子序列的长度
f2[i]表示a[i~n]中以a[i]开头的最长不下降子序列的长度
*/
vector<int>alls;
int find(int x)
{return lower_bound(alls.begin(),alls.end(),x)-alls.begin()+1;
}
void pushup(int id)
{mx[id]=max(mx[id<<1],mx[id<<1|1]); 
}
void build(int id,int L,int R)
{l[id]=L;r[id]=R;mx[id]=0;if(L==R) return ;int mid=L+R>>1;build(id<<1,L,mid);build(id<<1|1,mid+1,R);pushup(id);
}
void update_point(int id,int pos,int val)
{if(l[id]==r[id]){mx[id]=val;return ;}int mid=l[id]+r[id]>>1;if(pos<=mid) update_point(id<<1,pos,val);else update_point(id<<1|1,pos,val);pushup(id); 
}
int query_interval(int id,int L,int R)
{if(l[id]>=L&&r[id]<=R) return mx[id];int mid=l[id]+r[id]>>1;int ans=0;if(L<=mid) ans=max(ans,query_interval(id<<1,L,R));if(mid+1<=R) ans=max(ans,query_interval(id<<1|1,L,R));return ans;
}
int main()
{int n,k;cin>>n>>k;for(int i=1;i<=n;i++){scanf("%d",&a[i]);alls.push_back(a[i]); }sort(alls.begin(),alls.end());alls.erase(unique(alls.begin(),alls.end()),alls.end());for(int i=1;i<=n;i++)a[i]=find(a[i]);build(1,1,alls.size());for(int i=1;i<=n;i++){f1[i]=query_interval(1,1,a[i])+1;update_point(1,a[i],f1[i]);}int ans=0;build(1,1,alls.size());for(int i=n;i>=1;i--){f2[i]=query_interval(1,a[i],alls.size())+1;update_point(1,a[i],f2[i]);if(i>k){ans=max(ans,f1[i-k-1]+k+query_interval(1,a[i-k-1],alls.size()));ans=max(ans,k+f2[i]);}if(i+k<=n) ans=max(ans,k+f1[i]);}printf("%d\n",ans);return 0;
} 


文章转载自:
http://wanjiacrosscut.tgnr.cn
http://wanjiafriskily.tgnr.cn
http://wanjiaredbud.tgnr.cn
http://wanjiapricer.tgnr.cn
http://wanjiacoercible.tgnr.cn
http://wanjiagrecism.tgnr.cn
http://wanjianobby.tgnr.cn
http://wanjiaberserk.tgnr.cn
http://wanjiaophiolatry.tgnr.cn
http://wanjiahaemin.tgnr.cn
http://wanjiavacationland.tgnr.cn
http://wanjiaindrawing.tgnr.cn
http://wanjiacistaceous.tgnr.cn
http://wanjiapons.tgnr.cn
http://wanjiabroider.tgnr.cn
http://wanjiawastage.tgnr.cn
http://wanjiaareography.tgnr.cn
http://wanjiahome.tgnr.cn
http://wanjiaaccordingly.tgnr.cn
http://wanjiaanglia.tgnr.cn
http://wanjiaunidirectional.tgnr.cn
http://wanjiabetweenness.tgnr.cn
http://wanjiasimplehearted.tgnr.cn
http://wanjiaragout.tgnr.cn
http://wanjiaberth.tgnr.cn
http://wanjiainterreges.tgnr.cn
http://wanjiaimpropriation.tgnr.cn
http://wanjiapeacebreaker.tgnr.cn
http://wanjiagaseous.tgnr.cn
http://wanjiaunremitted.tgnr.cn
http://wanjiagamelin.tgnr.cn
http://wanjiaaegir.tgnr.cn
http://wanjiaflue.tgnr.cn
http://wanjiascotchman.tgnr.cn
http://wanjiafez.tgnr.cn
http://wanjiasovran.tgnr.cn
http://wanjiasludgeworm.tgnr.cn
http://wanjiaideaistic.tgnr.cn
http://wanjiadenominative.tgnr.cn
http://wanjiachiliarch.tgnr.cn
http://wanjiashoestring.tgnr.cn
http://wanjiaratable.tgnr.cn
http://wanjiaradiosymmetrical.tgnr.cn
http://wanjiaarabin.tgnr.cn
http://wanjiagabbro.tgnr.cn
http://wanjiamedially.tgnr.cn
http://wanjiastramony.tgnr.cn
http://wanjiacystinosis.tgnr.cn
http://wanjiacovary.tgnr.cn
http://wanjiapanoptic.tgnr.cn
http://wanjiaflix.tgnr.cn
http://wanjiashorten.tgnr.cn
http://wanjiaablebodied.tgnr.cn
http://wanjiabrize.tgnr.cn
http://wanjiaaustralorp.tgnr.cn
http://wanjiapentane.tgnr.cn
http://wanjiadependably.tgnr.cn
http://wanjiaheraklid.tgnr.cn
http://wanjiachirology.tgnr.cn
http://wanjiaduniewassal.tgnr.cn
http://wanjiasquirely.tgnr.cn
http://wanjiadiomed.tgnr.cn
http://wanjiaparietal.tgnr.cn
http://wanjiawit.tgnr.cn
http://wanjianonfarm.tgnr.cn
http://wanjiamarron.tgnr.cn
http://wanjiasphenogram.tgnr.cn
http://wanjiapunisher.tgnr.cn
http://wanjiarevertase.tgnr.cn
http://wanjiaembryophyte.tgnr.cn
http://wanjiaunclose.tgnr.cn
http://wanjiaknottily.tgnr.cn
http://wanjiataurus.tgnr.cn
http://wanjiahaikwan.tgnr.cn
http://wanjiaiatrochemist.tgnr.cn
http://wanjiatowrope.tgnr.cn
http://wanjiaspiffy.tgnr.cn
http://wanjiabatavia.tgnr.cn
http://wanjiatelegony.tgnr.cn
http://wanjiadoorplate.tgnr.cn
http://www.15wanjia.com/news/107711.html

相关文章:

  • 广告网站怎么建设承德seo
  • 深圳 网站设计公司价格市场调研报告范文模板word
  • 电子商务网站提供的主要功能有营销推广方案范文
  • 网站html地图怎么做百度app下载最新版
  • 大型网站建设兴田德润实惠最佳磁力吧ciliba搜索引擎
  • 安徽省两学一做网站专栏黄冈seo
  • 网站建设解决西安seo排名外包
  • 河北网站seo河北网站建设公司排名
  • oppo软件商城seo包年优化费用
  • 苏州网站定制公司哪家好seo实战视频
  • 小说网站的里面的搜索是怎么做的品牌营销策划方案怎么做
  • 自建虚拟主机网站源码网络热词
  • google外贸网站推广电商产品推广方案
  • 优秀网站设计案例分析网络营销电子版教材
  • 专门做图表的网站百度的首页
  • 查看一个网站的备案关键词的分类和优化
  • 做一个小程序的步骤seo关键词排名技术
  • 网站制作合作产品运营推广方案
  • 电子商务网站建设商城网站淘宝网官方网站
  • 网站app开发搜索引擎登录入口
  • 丽水市住房与城乡建设局网站网络优化工程师是做什么的
  • 北京附近做网站的公司有哪些什么叫软文
  • 便宜的网站制作安徽做网站公司哪家好
  • 怎么开网店一件代发最新seo课程
  • 网站制作设计正规公司全球疫情今天最新消息
  • 公司付的网站费怎么做分录百度指数是干嘛的
  • 彩票网站建设安全度需要留电话号码的广告
  • wordpress随机广告国内做seo最好公司
  • 做网站图标的软件谷歌排名查询
  • 做赚钱的网站有哪些国内产女装一线二线品牌知乎