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

深圳企业网站建设服务快速网站推广优化

深圳企业网站建设服务,快速网站推广优化,高端网站建设加盟,安阳区号后三位传送门 题意#xff1a; 给nnn个数#xff0c;一个kkk#xff0c;求aaa中包含1−k1-k1−k且字典序最小的子序列。 思路1#xff1a; 记p[i]p[i]p[i]为iii出现的最后位置#xff0c;让后维护一个栈#xff0c;当这个数不在栈里时将其入栈#xff0c;入栈的时候跟栈顶比…传送门 题意 给nnn个数一个kkk求aaa中包含1−k1-k1−k且字典序最小的子序列。 思路1 记p[i]p[i]p[i]为iii出现的最后位置让后维护一个栈当这个数不在栈里时将其入栈入栈的时候跟栈顶比较当a[i]stk[top]且p[stk[top]]ia[i]stk[top] 且p[stk[top]]ia[i]stk[top]且p[stk[top]]i的时候弹出栈顶即当这个数比栈顶小且后面还有栈顶元素可以替换他的时候出栈。这样最后栈中元素即为答案。 复杂度O(n)O(n)O(n) 思路2 用线段树维护区间中a[i]a[i]a[i]值最小的位置让后记录一下每个数最后出现的位置一次找kkk个数。每次查询的区间就是[pre,s.begin()][pre,s.begin()][pre,s.begin()]让后返回的位置即为当前选的数的位置其中sss是setsetset存每个数最后出现的位置preprepre是上次取的数的位置1。来讨论一下这样为什么是正确的。首先我们要字典序最小贪心的想肯定是前面越小越好假设序列为[4,4,2,1,3,4,1],k3[4,4,2,1,3,4,1],k3[4,4,2,1,3,4,1],k3初始的时候pre1pre1pre1s.begin()3s.begin()3s.begin()3让后我们找[1,3][1,3][1,3]最小值的下标为什么要在[1,3][1,3][1,3]中找呢因为333位置是222最后一次出现的位置如果你跑[1,4][1,4][1,4]中找的话你会选到111这样你第一个数就是111了而且pre5pre5pre5代表你之后都不会选到222这个数了所以要以最后出现的位置为界来找前面出现的最小值。让后每次都找当前区间最小值最左边的位置让后输出即可。 //#pragma GCC optimize(2) #includecstdio #includeiostream #includestring #includecstring #includemap #includecmath #includecctype #includevector #includeset #includequeue #includealgorithm #includesstream #includectime #includecstdlib #define X first #define Y second #define L (u1) #define R (u1|1) #define pb push_back #define mk make_pair #define Mid (tr[u].ltr[u].r1) #define Len(u) (tr[u].r-tr[u].l1) #define random(a,b) ((a)rand()%((b)-(a)1)) #define db puts(---) using namespace std;//void rd_cre() { freopen(d://dp//data.txt,w,stdout); srand(time(NULL)); } //void rd_ac() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//AC.txt,w,stdout); } //void rd_wa() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//WA.txt,w,stdout); }typedef long long LL; typedef unsigned long long ULL; typedef pairint,int PII;const int N1000010,mod1e97,INF0x3f3f3f3f; const double eps1e-6;int n,k; int a[N]; int stk[N],top; int p[N],cnt[N];int main() { // ios::sync_with_stdio(false); // cin.tie(0);scanf(%d%d,n,k);for(int i1;in;i) scanf(%d,a[i]),p[a[i]]i;for(int i1;in;i){if(cnt[a[i]]) continue;while(topstk[top]a[i]p[stk[top]]i) top--,cnt[stk[top1]]0;stk[top]a[i]; cnt[a[i]]1;}for(int i1;itop;i) printf(%d ,stk[i]); puts();return 0; } /**/
http://www.pierceye.com/news/917458/

相关文章:

  • 自适应网站建设沈阳网站安全建设需求
  • 列表主题wordpress国外seo综合查询
  • 装修网站怎么做推广做百度网站每年的费用多少
  • 网站搭建免费视频教程省企联网站建设要求
  • 天津大学生专业做网站建设网站价格
  • 携程网站建设进度及实施过程文具电子商务网站开发内容
  • 怎么查看网站打开速度网站源码整站下载
  • 北京城乡住房建设部网站常见的网络营销推广方式有哪些
  • 做网站的成本费用钱宝网站怎么做任务
  • 网站上的格式用html怎么做部队网站设计
  • 帮客户做网站内容社交网站有哪些如何做
  • 网站开发与设计实训总结两千字公众号制作的网站开发
  • 一个公司做2个产品网站怎么做的用html5做的网站素材
  • 内乡网站建设咸阳网站建设报价
  • 企业网站多少钱扶余手机网站开发
  • 做外汇网站卖判刑多少年如何找回网站后台密码
  • 怎么做优惠券网站asp.net mvc 5网站开发之美
  • 网站底部浮动电话广告福建住房和城乡建设部网站
  • 建站之星破解版wordpress 置顶排序
  • c2c网站代表和网址涟源市建设局网站
  • 哪个网站有免费的模板免费网上商城系统
  • 一个网站的建设需要什么东西前十强排名家装公司
  • 广州网站建设报价表石家庄搜索排名提升
  • 网站备案步骤企业网站手机版模板免费下载
  • 郑州高端品牌网站建设镇江网站营销推广
  • 网站开发简单的框架南昌手机网站
  • 网站分析与优化百度新闻源网站有哪些
  • 直播网站开发秀色上海综合新闻
  • 电子商务网站建设与管理课后题答案企业网站推广哪家好
  • 网站被挂黑链怎么删除石家庄企业网站建设