https://codeforces.com/contest/650/problem/D


原题?

http://210.33.19.103/contest/1024/problem/2

4s 520M


题解很明白了:

当初想错了,想用stormwind的做法去做,发现要维护

给出数组a,f,g
j<i<k,a[j]<a[k]
对于每个i,求f[j]+g[k]最大值

维护了极其长的时间,啥也没维护出来。。。

错误记录:

1.第一次用lower_bound离散化,出了一些奇怪的小错误(关键是小数据根本测不出错..)

2.主席树卡空间,只好强行改成不可持久化的

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cstring>
  4. #include<vector>
  5. #include<set>
  6. using namespace std;
  7. #define fi first
  8. #define se second
  9. #define mp make_pair
  10. #define pb push_back
  11. typedef long long ll;
  12. typedef unsigned long long ull;
  13. typedef pair<int,int> pii;
  14. int ld,rd;
  15. namespace S
  16. {
  17.  
  18. #define lc (num<<1)
  19. #define rc (num<<1|1)
  20. const int N=;
  21. int maxn[N];
  22. void clr(){memset(maxn,,sizeof(maxn));}
  23. int qmax(int L,int R,int l,int r,int num)
  24. {
  25. if(L<=l&&r<=R) return maxn[num];
  26. int mid=l+((r-l)>>);int ans=ld;
  27. if(L<=mid) ans=max(ans,qmax(L,R,l,mid,lc));
  28. if(mid<R) ans=max(ans,qmax(L,R,mid+,r,rc));
  29. return ans;
  30. }
  31. void setmaxx(int L,int x,int l,int r,int num)
  32. {
  33. if(l==r)
  34. {
  35. maxn[num]=max(maxn[num],x);
  36. return;
  37. }
  38. int mid=l+((r-l)>>);
  39. if(L<=mid) setmaxx(L,x,l,mid,lc);
  40. else setmaxx(L,x,mid+,r,rc);
  41. maxn[num]=max(maxn[lc],maxn[rc]);
  42. }
  43.  
  44. }
  45. int f[],g[];
  46. int an1[];
  47. int a[];
  48. bool onlis[];
  49. int n,m;
  50. int lis;
  51. int tmp[];
  52. struct QQ
  53. {
  54. int fi,se,n;
  55. }q[];
  56. bool c1(const QQ &a,const QQ &b){return a.fi<b.fi;}
  57. bool c3(const QQ &a,const QQ &b){return a.n<b.n;}
  58. int tt[],t1[],t2[];
  59. int main()
  60. {
  61. int i,j;
  62. scanf("%d%d",&n,&m);
  63. //n=400000;m=400000;
  64. for(i=;i<=n;i++)
  65. {
  66. scanf("%d",&a[i]);
  67. //a[i]=rand();
  68. tt[++tt[]]=a[i];
  69. }
  70. for(i=;i<=m;i++)
  71. {
  72. scanf("%d%d",&q[i].fi,&q[i].se);
  73. //q[i].fi=rand()%n+1;q[i].se=rand();
  74. q[i].n=i;
  75. tt[++tt[]]=q[i].se;
  76. }
  77. sort(tt+,tt+tt[]+);tt[]=unique(tt+,tt+tt[]+)-tt-;
  78. for(i=;i<=n;i++) a[i]=lower_bound(tt+,tt+tt[]+,a[i])-tt;
  79. for(i=;i<=m;i++) q[i].se=lower_bound(tt+,tt+tt[]+,q[i].se)-tt;
  80. /*
  81. for(i=1;i<=n;i++)
  82. if(a[i]<=0||a[i]>tt[0])
  83. exit(-1);
  84. */
  85. ld=;rd=tt[]+;
  86. //printf("6t%d %d\n",ld,rd);
  87. sort(q+,q+m+,c1);
  88. for(i=,j=;i<=n;i++)
  89. {
  90. //printf("1t%d %d %d %d\n",ld,a[i]-1,ld,rd);
  91. f[i]=S::qmax(ld,a[i]-,ld,rd,)+;
  92. while(j<=m&&q[j].fi<=i)
  93. {
  94. t1[q[j].n]=S::qmax(ld,q[j].se-,ld,rd,)+;
  95. ++j;
  96. }
  97. S::setmaxx(a[i],f[i],ld,rd,);
  98. }
  99. S::clr();
  100. for(i=n,j=m;i>=;i--)
  101. {
  102. g[i]=S::qmax(a[i]+,rd,ld,rd,)+;
  103. while(j>&&q[j].fi>=i)
  104. {
  105. t2[q[j].n]=S::qmax(q[j].se+,rd,ld,rd,)+;
  106. --j;
  107. }
  108. S::setmaxx(a[i],g[i],ld,rd,);
  109. }
  110. for(i=;i<=n;i++)
  111. lis=max(lis,f[i]);
  112. //for(i=1;i<=n;i++)
  113. // printf("ft%d\n",f[i]);
  114. //for(i=1;i<=n;i++)
  115. // printf("gt%d\n",g[i]);
  116. S::clr();
  117. for(i=n;i>=;i--)
  118. {
  119. onlis[i]=(S::qmax(a[i]+,rd,ld,rd,)+f[i])==lis;
  120. if(onlis[i])
  121. {
  122. ++tmp[f[i]];
  123. S::setmaxx(a[i],g[i],ld,rd,);
  124. }
  125. }
  126. for(i=;i<=n;i++)
  127. if(onlis[i]&&tmp[f[i]]==)
  128. an1[i]=lis-;
  129. else
  130. an1[i]=lis;
  131. sort(q+,q+m+,c3);
  132. for(i=;i<=m;i++)
  133. {
  134. //printf("1t%d %d\n",t1[i],t2[i]);
  135. printf("%d\n",max(t1[i]+t2[i]-,an1[q[i].fi]));
  136. }
  137. return ;
  138. }

Zip-line Codeforces - 650D || 风筝的更多相关文章

  1. CodeForces - 650D:Zip-line (LIS & DP)

    Vasya has decided to build a zip-line on trees of a nearby forest. He wants the line to be as long a ...

  2. Psychos in a Line CodeForces - 319B (单调栈的应用)

    Psychos in a Line CodeForces - 319B There are n psychos standing in a line. Each psycho is assigned ...

  3. codeforces 650D D. Image Preview (暴力+二分+dp)

    题目链接: http://codeforces.com/contest/651/problem/D D. Image Preview time limit per test 1 second memo ...

  4. Day8 - A - Points on Line CodeForces - 251A

    Little Petya likes points a lot. Recently his mom has presented him n points lying on the line OX. N ...

  5. Codeforces 650D - Zip-line(树状数组)

    Codeforces 题目传送门 & 洛谷题目传送门 我怕不是个 nt--一开始忽略了"询问独立"这个条件--然后就一直在想有什么办法维护全局 LIS--心态爆炸 首先离散 ...

  6. codeforces 650D. Zip-line 线段树

    题目链接 题目的意思很简单, 就是给你n个数, m个询问, 每次询问修改某一个位置的值, 然后问你修改完之后数列的lis是多少. 询问独立. 对于原数列, 我们将它离散化, 令dp1[i]为以i为结尾 ...

  7. Codeforces Round #345 (Div. 1) D. Zip-line 上升子序列 离线 离散化 线段树

    D. Zip-line 题目连接: http://www.codeforces.com/contest/650/problem/D Description Vasya has decided to b ...

  8. codeforces #345 (Div. 1) D. Zip-line (线段树+最长上升子序列)

    Vasya has decided to build a zip-line on trees of a nearby forest. He wants the line to be as long a ...

  9. 【Linux】解压分卷压缩的zip文件

    例如linux.zip.001, linux.zip.002, linux.zip.003. 1. cat linux.zip* > linux.zip #合并为一个zip包. 2. unzip ...

随机推荐

  1. vue组件挂载到全局方法

    在最近的项目中,使用了bootstrap-vue来开发,然而在实际的开发过程中却发现这个UI提供的组件并不能打到我们预期的效果,像alert.modal等组件每个页面引入就得重复引入,并不像eleme ...

  2. sdut oj 1163 C语言实验——排列 (当初不会递归生成排列,这个题目现在才补上 刘汝佳给出了写法 *【模板】 当然有生成全排列的函数存在 )

    C语言实验——排列 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 有4个互不相同的数字,请按序输出由其中三个不重复数字组成的排列 ...

  3. YUV420数据和字符信息如何利用滤镜方法进行编码?

    YUV420数据和字符信息如何利用滤镜方法进行编码?我希望用ffmpeg中的filter方法,把YUV420数据和字符信息一起编码,该怎么办呢? 本人目前只实现了把yuv420的数据进行h.264的编 ...

  4. C#开发遇到的常见问题及知识点

    今天遇到的类型初始值设定项引发异常的原因是:类没有添加[Serializable]属性. this.DialogResult = System.Windows.Forms.DialogResult.O ...

  5. ORA-12547: TNS:lost contact

    碰到这个ORA-12547: TNS:lost contact的问题,翻了很多资料和METALINK,总结了一下原因: 1 是由于rpm包没有安装,对于我们的生产环境,此包是安装的. admin@p1 ...

  6. 普通用户Mysql 5.6.13 主从,主主及nagios的mysql slave监控

    Master:192.168.209.19 Slave:192.168.209.20 mysql版本:mysql5.6.13 1. 以root身份创建普通用户,如mysql,并创建mysql安装目录: ...

  7. tomcat 的一些知识

    常见web服务器 1. WebLogic 支持J2EE规范2. WebSphere 支持J2EE3. Tomcat 支持JSP,servlet规范 需要配置JDK才能运行 tomcat JAVA_HO ...

  8. windows安装PHP5.4+Apache2.4+Mysql5.5

    windows安装PHP5.4+Apache2.4+Mysql5.5 作者:星之宇 ┊ 时间:2012-10-18 14:27 ┊ 分类: 网站技术 ┊ 阅读:1232 ┊ 评论:16 最近听说PHP ...

  9. Bootstrap 轻量级后台管理系统模板--ACE使用介绍

    在上一篇基于Bootstrap介绍了一个免费的后台管理模板Charisma UI. 参见链接: 基于Jquery.Bootstrap的后台管理免费UI框架推荐--Charisma UI 今天继续分享一 ...

  10. Maven安装,配置及更改本地资源库

    安装 1.确保已安装JDK,和配置JAVA_HOME环境变量 . 注:Maven 3.2 要求 JDK 1.6 或以上版本, 而 Maven 3.0/3.1 需要 JDK 1.5 或以上,这里安装的是 ...