Description

有两棵APP树,编号为1,2.每一秒,这两棵APP树中的其中一棵会掉一个APP.每一秒,你可以选择在当前APP树下接APP,或者迅速移动到另外一棵APP树下接APP(移动时间可以忽略不计),但由于却乏锻炼,你最多移动W次.问在T秒内,你最多能收集多少个APP.假设你开始站在1号APP树下.

Input

第1行:两个整数T(1 < = T< = 1000)和W(1 < = W< = 30)
第2..T+1行:1或2,代表每分钟掉落APP的那棵树的编号

Output

一行一个整数,代表你移动不超过W次能接住的最大APP数

Sample Input

7 2
2
1
1
2
2
1
1

Sample Output

6

思路:简单的dp,设状态转移为dp[i][j],第i秒,移动了j次,能抓住的APP为dp[i][j],对于每次j,有两种状态:苹果在该位置,苹果不在该位置,若苹果在该位置,dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+1,若苹果不在该位置,dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]),再使用滚动数组压缩即可
int dp[];

int main() {
ios::sync_with_stdio(false), cin.tie();
int T, W, val;
cin >> T >> W;
for(int i = ; i <= T; ++i) {
cin >> val;
for(int j = W; j >= ; --j) {
if((j+)% == (val%)) dp[j] = max(dp[j], dp[j-]) +;
else dp[j] = max(dp[j], dp[j-]);
}
}
int ans = ;
for(int i = ; i <= W; ++i)
ans = max(ans, dp[i]);
cout << ans << "\n";
return ;
}
												

最新文章

  1. 【JavaScript】ArtTemplate个人的使用体验。
  2. DPI
  3. TLB初始化 Missing Handler,MIPS R3K mips_init_tlb
  4. caffe学习系列(3):数据层介绍
  5. HTML页面嵌入视频和JS控制切换视频的问题
  6. .NetDOM操作--un
  7. Unity3D ShaderLab 修改渲染队列进行深度排序
  8. ActionScript ArrayCollection sort
  9. 【BZOJ 3504】[Cqoi2014]危桥
  10. struts2的@Result annotation 如何添加params
  11. java.lang.Boolean为null时
  12. 关于ASP.Net中路径的问题
  13. codechef Chef and The Right Triangles 题解
  14. hdu 1026 Ignatius and the Princess I【优先队列+BFS】
  15. loadView 再思考
  16. 理论铺垫:阻塞IO、非阻塞IO、IO多路复用/事件驱动IO(单线程高并发原理)、异步IO
  17. 51nod1363 最小公倍数之和
  18. 1、话说linux内核
  19. Python3 环境搭建
  20. Redis应用一例(存证数量用计数器实现)

热门文章

  1. Springboot学习:日志
  2. traceback说明
  3. 查看服务器CPU相关信息!
  4. ArrayStack(栈)
  5. 关于PGSQL连接问题
  6. php封装的mysqli类完整实例
  7. Java自学-集合框架 ArrayList和HashSet的区别
  8. 【协作式原创】自己动手写docker之run代码解析
  9. 在iOS项目中,这样才能完美的修改项目名称
  10. Apache Shiro安全(权限框架)学习笔记二