Apple Catching

直接翻译了

Descriptions

有两棵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

题目链接

https://vjudge.net/problem/POJ-2385

定义dp[i][j]为在第i秒,移动j次获得的最大苹果数。在零时刻时,所有的dp项均为0。

当j为0时,有dp[i][j] = dp[i - 1][j]当j不为0时,有dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1]),即在 i - 1 时刻时,均有两种选择,一种选择移动,一种选择不移动。

注意题目并不是在移动越多次能获得越多苹果。

dp[i][j]标示在时间i,已经来回了j次时的最大苹果数目。这样dp方程肯定苹果数目不会变的,所以要注意,如果当前的次数刚到当前树下,dp[i][j]++

a[i]-(j&1)==1 判断当前的次数刚到当前树下

开始在1号树下,移动时,当j为奇数时,在2号树下

            当j为偶数时,在1号树下

当j为奇数时,j&1为1,若a[i]为2,则当前的次数刚到当前树下,此时a[i]-(j&1)==1

当j为偶数时,j&1为0,若a[i]为1,则当前的次数刚到当前树下,此时a[i]-(j&1)==1

AC代码

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);
#define Mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x,y) memset(x,y,sizeof(x))
#define Maxn 10005
using namespace std;
int T,W;
int ans;
int dp[Maxn][];
int a[Maxn];
int main()
{
MEM(dp,);
cin>>T>>W;
for(int i=;i<=T;i++)
cin>>a[i];
for(int i=;i<=T;i++)
{
for(int j=;j<=W;j++)
{
if(j==)
dp[i][j]=dp[i-][j];
else
dp[i][j]=max(dp[i-][j],dp[i-][j-]);//状态转移方程
if(a[i]-(j&)==)
dp[i][j]++;
}
}
ans=dp[T][];
for(int i=;i<=W;i++)//判断移动几次的APP最多
ans=max(ans,dp[T][i]);
cout<<ans<<endl;
return ;
}

最新文章

  1. 头部加mead(便于seo优化)
  2. 总结七条助你成为Linux高手的超棒忠告
  3. Android相机、相册获取图片显示并保存到SD卡
  4. Spring MVC 之拦截器(八)
  5. UltraEdit软件破解方法
  6. #翻译# 深入JavaScript的Unicode难题(上)
  7. C#设置窗体最大化且不遮挡任务栏的方法
  8. FPGA图案--数字表示(代码+波形)
  9. 2017ecjtu-summer training # 11 POJ 2492
  10. iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?
  11. 资源中心的ES 服务的COM.IFLYTEK.ERSP.API.RESOURCEAPI 接口注册ZOOKEEPER失败,解决记录
  12. JQ JS复制到剪贴板
  13. python 字节转换成图像
  14. 关于mysql中字符集和排序规则说明
  15. 《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv
  16. spring/spirng boot添加fluent日志-aop
  17. _mysql_exceptions.ProgrammingError:(2014, &quot;commands out of sync; you can&#39;t run this command now&quot;)
  18. SQL Server 查询优化器运行方式
  19. Python 爬虫实例(5)—— 爬取爱奇艺视频电视剧的链接(2017-06-30 10:37)
  20. 弹性布局(flex)

热门文章

  1. Codeforces 760C:Pavel and barbecue(DFS+思维)
  2. 【烂笔头】常用adb命令记录
  3. 用jQuery做定位元素,做自动化测试你尝试过吗
  4. MS SQL SERVER数据导入MySQL
  5. python数据库查询转dataframe
  6. Git使用小技巧之免密登录
  7. Bzoj 3813 奇数国 题解 数论+线段树+状压
  8. 提升布局性能____Re-using Layouts with &lt;include/&gt;
  9. Python 爬虫:煎蛋网妹子图
  10. grep -nr &quot;Base64Decode&quot; * 查找含有某字符的文件