2019.03.28 bzoj3594: [Scoi2014]方伯伯的玉米田(二维bit优化dp)
2024-10-13 16:56:08
传送门
题意咕咕咕
思路:直接上二维bitbitbit优化dpdpdp即可。
代码:
#include<bits/stdc++.h>
#define N 10005
#define K 5005
using namespace std;
int n,k,a[N],bit[6005][605],len=0,ans=0;
inline long long read(){
long long ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch)){
ans=(ans<<3)+(ans<<1)+ch-'0';
ch=getchar();
}
return ans;
}
inline int lowbit(int x){return x&-x;}
inline void update(int nx,int mx,int v){
for(int i=nx;i<=len+k;i+=lowbit(i))
for(int j=mx;j<=k+1;j+=lowbit(j))
bit[i][j]=max(bit[i][j],v);
}
inline int query(int nx,int mx){
int ret=0;
for(int i=nx;i;i-=lowbit(i))
for(int j=mx;j;j-=lowbit(j))
ret=max(ret,bit[i][j]);
return ret;
}
int main(){
n=read();
k=read();
for(int i=1;i<=n;++i){
a[i]=read();
len=max(a[i],len);
}
for(int i=1;i<=n;++i){
for(int j=k;j>=0;--j){
int pos=query(a[i]+j,j+1)+1;
ans=max(ans,pos);
update(a[i]+j,j+1,pos);
}
}
printf("%d",ans);
return 0;
}
最新文章
- iOS通知中心升级 -可设置按优先级执行block
- nginx 负载均衡策略
- iOS数组排序
- HDU2697+DP
- Servlet中的请求包含
- IOS深入学习(12)之Archiving
- Excel——使用VLOOKUP函数关联跨工作薄数据
- c#提出中文首字母
- CSS实现页面背景自动切换功能
- HDU 1069 Monkey and Banana(DP 长方体堆放问题)
- MyBatis Generator配置示例
- c#调用com组件,程序 发生意外<;hr=0x80020009>;
- hmtl div水平、垂直居中
- solr(三) : 导入数据库表数据
- 二叉搜索树(hdu3791)
- C#实现windows服务安装,服务名可配置时出问题(无法创建&#160;ProjectInstaller&#160;安装程序类型的实例)
- springmvc 测试项目示例
- 初级版python登录验证,上传下载文件加MD5文件校验
- Spring MVC Hello World 404
- 程序员 &; 设计师都能用上的 75 份速查手册
热门文章
- Dostoevsky: Better Space-Time Trade-Offs for LSM-Tree Based Key-Value Stores via Adaptive Removal of Superfluous Merging 阅读笔记
- 网络yum源制作
- vim简单命令
- js判断一个变量是数组还是对象
- JSP(介绍,语法,指令)
- 138 条 Vim 命令、操作、快捷键全集
- 【c # 数据库】存储过程
- 【c# 数据库】对数据库进行增删查改
- ViewPager中Fragment的重复创建、复用问题
- WebSocket 实现链接 群聊(low low low 版本)