【BZOJ 3594】[Scoi2014]方伯伯的玉米田 树状数组
来源:互联网 发布:应届程序员工资 编辑:程序博客网 时间:2024/05/16 14:47
显然,要拔i,那么拔i->n一起一定不会更差(后面的相对高度不变,但是比前面的高度高的可能性更大),所以,就变得水水的了。
设f[i][j]为高度为i,被拔过j次的最长不下降子序列,然后用二维数组维护 就可以了。
值得一提的是,不要把拔0次,即不拔的情况考虑掉了,我还因此wa了几发。。。郁闷
#include<cstdio>#include<cstring>#include<iostream>using namespace std;int c[5521][521],n,k,a[10021],mx;void read(int& x){x=0;char c=getchar();for(;c>'9'||c<'0';c=getchar());for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';}void update(int x,int y,int add){for(int i=x;i<=mx+k+1;i+=i&-i)for(int j=y;j<=k+1;j+=j&-j)c[i][j]=max(c[i][j],add);}int query(int x,int y){int ans=0;for(int i=x;i>0;i-=i&-i)for(int j=y;j>0;j-=j&-j)ans=max(ans,c[i][j]);return ans;}int main(){read(n),read(k);int ans=0;for(int i=1;i<=n;i++)read(a[i]),mx=max(mx,a[i]);for(int t,i=1;i<=n;i++){for(int j=k;j>=0;j--){t=query(a[i]+j,j+1)+1;ans=max(ans,t);update(a[i]+j,j+1,t);}}printf("%d",ans);return 0;}
0 0
- BZOJ 3594 Scoi2014 方伯伯的玉米田 树状数组
- 【BZOJ 3594】[Scoi2014]方伯伯的玉米田 树状数组
- 3594: [Scoi2014]方伯伯的玉米田 DP+树状数组优化
- 【BZOJ 3594】 [Scoi2014]方伯伯的玉米田
- 【bzoj 3594】[Scoi2014]方伯伯的玉米田
- BZOJ 3594 [Scoi2014]方伯伯的玉米田
- bzoj 3594: [Scoi2014]方伯伯的玉米田 动态规划+树状数组
- bzoj 3594: [Scoi2014]方伯伯的玉米田 二维树状数组优化dp
- BZOJ 3594 [Scoi2014]方伯伯的玉米田 动态规划+二维树状数组
- [BZOJ]3594 [SCOI2014] 方伯伯的玉米田 二维树状数组 + dp
- 【bzoj3594】【SCOI2014】【方伯伯的玉米田】【dp+二维树状数组】
- [bzoj3594][Scoi2014]方伯伯的玉米田 树状数组优化dp
- [Scoi2014]方伯伯的玉米田 二维树状数组+动态规划
- 3594: [Scoi2014]方伯伯的玉米田
- 3594: [Scoi2014]方伯伯的玉米田
- [Scoi2014]方伯伯的玉米田
- 【二维树状数组优化dp】[Scoi2014] bzoj3594方伯伯的玉米田
- 【bzoj3594】 SCOI2014方伯伯的玉米田 dp+二维树状数组优化
- div内部div居中
- ubutun引导修复
- 爬楼梯——动态规划
- AngularJS使用Echarts
- C++ STL中Map的按Key排序和按Value排序
- 【BZOJ 3594】[Scoi2014]方伯伯的玉米田 树状数组
- 高分笔记考研oj——1324: 算法2-2:有序线性表的有序合并,zoj
- 经常使用的两个清爽的table样式
- 实现类似分享 和支付窗口 从界面下面弹出Style
- java 基础知识五 数组
- 空格替换
- adb: 未找到命令
- DAY1
- ios自定义TextView,实时监控输入字数的改变,计数以及超出时键盘自动隐藏