BZOJ3594 树状数组优化DP
来源:互联网 发布:沙巴阳光酒店网络 编辑:程序博客网 时间:2024/05/24 13:28
直接上转移方程
这样的转移我们可以用二位树状数组来维护区间最大值
#include<bits/stdc++.h>#define bug(x) cout<<(#x)<<" "<<(x)<<endl#define ll long long#define lowbit(x) (x&(-x))using namespace std;const int N=1e4+5;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n,k,ans;int a[N],t[505][5505];void add(int x,int y,int zjq){ for(int i=x;i<505;i+=lowbit(i)) for(int j=y;j<5505;j+=lowbit(j)) t[i][j]=max(t[i][j],zjq);}int get(int x,int y){ int zjq=0; for(int i=x;i;i-=lowbit(i)) for(int j=y;j;j-=lowbit(j)) zjq=max(t[i][j],zjq); return zjq;}int main(){#ifdef Devil_Gary freopen("in.txt","r",stdin);#endif n=read(),k=read()+1; for(int i=1;i<=n;i++) a[i]=read(); for(int i=1;i<=n;i++){ for(int j=k;j>=1;j--){ int zjq=get(j,a[i]+j)+1; ans=max(ans,zjq); add(j,a[i]+j,zjq); } } cout<<ans<<endl;}
阅读全文
1 0
- BZOJ3594 树状数组优化DP
- BZOJ3594 二维树状数组优化DP
- [BZOJ3594]二维树状数组优化DP
- [bzoj3594][Scoi2014]方伯伯的玉米田 树状数组优化dp
- bzoj3594 方伯伯的玉米田 树状数组优化dp
- 【二维树状数组优化dp】[Scoi2014] bzoj3594方伯伯的玉米田
- 【bzoj3594】 SCOI2014方伯伯的玉米田 dp+二维树状数组优化
- BZOJ3594[Scoi2014] 方伯伯的玉米田 解题报告【二维树状数组优化DP】
- 【bzoj3594】【SCOI2014】【方伯伯的玉米田】【dp+二维树状数组】
- 【HDU4991】dp 树状数组优化
- hdu5542 树状数组优化dp
- HDU - 4991(树状数组优化 dp)
- hdu 3450 树状数组优化dp
- bzoj4361 isn(树状数组优化DP)
- [dp+树状数组优化] CF597C. Subsequences
- hdu 5542(树状数组优化dp)
- hdu 3450(树状数组优化dp)
- hdu 2227(树状数组优化dp)
- dcmtk压缩解压缩注意的地方
- java读取文件
- 实现一个通讯录。
- 将Oracle数据库改为归档模式并启用RMAN备份 如下Linux环境下对Oracle单节点数据库采用文件系统情况的配置归档模式过程。首先查看数据库归档模式和磁盘使用情况,确定归档文件放到什么位置。
- 伪元素before的坑--空格导致的错误
- BZOJ3594 树状数组优化DP
- 动物声音“模拟器”(接口与实现)
- GC日志
- ES6--异步操作之promise(续)
- RecyclerView使用时,解决Item显示不全问题
- 导入iOS-Echarts库运行时报too many errors emitted, stopping now [-ferror-l
- awk详解
- 理解 Java synchronized
- 微信小程序蓝牙通讯蓝牙模块demo