poj 2385 来回走接苹果dp
来源:互联网 发布:什么是双色球密码算法 编辑:程序博客网 时间:2024/05/18 01:25
题意:
有两棵树,奶牛开始时在树1下,现在每分钟两棵树中的某一棵会下苹果,奶牛只可以移动w次。
给每分钟下苹果的顺序,问奶牛最多能拿到多少苹果。
解析:
dp[ i ] [ j ] 表示的是在第i分钟,移动了w次拿到的最多苹果。
因为奶牛初始在树1下,所以:
dp[i][0] = dp[i - 1][0] + (a[i] == 1 ? 1 : 0);状态转移方程:
dp[i][j] = max(dp[i - 1 ] [j], dp[i-1][j-1]) + cnt
在第i分钟奶牛到某棵树下有两种状态:
从另一棵树走过来(dp[i-1][j-1]);
本来就呆在这棵树下(dp[i-1][j])。
所以在第i分钟时能接到的最大苹果数就是
dp[i][j]=max(dp[ i - 1 ] [ j ], dp[ i - 1 ] [ j - 1 ]) + cnt。
cnt的值:
如果j为偶数说明她移动了j次又回到了第一棵树下,则cnt = (a[i]==1)?1:0;
若j为奇数说明她移动了j次后到了第二棵树下,则 cnt =(a[i] == 2)?1:0。
代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>#include <climits>#include <cassert>#define LL long long#define lson lo, mi, rt << 1#define rson mi + 1, hi, rt << 1 | 1using namespace std;const int maxn = 1e6 + 10;const int inf = 0x3f3f3f3f;const double eps = 1e-8;const double pi = acos(-1.0);const double ee = exp(1.0);int dp[1001][31];int a[1001];int main(){#ifdef LOCAL freopen("in.txt", "r", stdin);#endif // LOCAL int t, w; while (~scanf("%d%d", &t, &w)) { for (int i = 1; i <= t; i++) { scanf("%d", &a[i]); } memset(dp, 0, sizeof(dp)); for (int i = 1; i <= t; i++) { dp[i][0] = dp[i - 1][0] + (a[i] == 1 ? 1 : 0); for (int j = 1; j <= w; j++) { int cnt = 0; if (j & 1) { cnt = (a[i] == 1) ? 0 : 1; } else { cnt = (a[i] == 2) ? 0 : 1; } dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + cnt; } } int ans = 0; for (int i = 1; i <= w; i++) { ans = max(ans, dp[t][i]); } printf("%d\n", ans); } return 0;}
0 0
- poj 2385 来回走接苹果dp
- 放苹果 - POJ 1664 dp
- POJ-1664-放苹果-dp
- POJ-放苹果(DP)
- POJ 1664 放苹果 DP
- PKU POJ 1664 放苹果 DP
- poj 2486 树形dp(吃苹果)
- poj 动态规划DP - 1664 放苹果
- POJ 1664 放苹果 (基础组合dp)
- poj 1664 放苹果 dp+划分数
- poj 1163 dp 走三角形取路径的最大值
- NOJ1060 接苹果 二维DP
- NOJ1060-接苹果(dp)
- 苹果【DP】
- POJ 1664 放苹果(递归或DP)
- 你愿意再抱着个电脑来回走着上网吗?
- POJ 3268 牛的最长来回时间
- poj 3268 单向最短路,来回路程~
- 质量管理:测试基础架构图
- linux内核之关于内存屏障
- Maven pom.xml配置详解
- 网络图片查看器 ——图片可放大缩小
- 重采样内插方法
- poj 2385 来回走接苹果dp
- Notification(通知栏)
- 各种排序算法之比较
- 运行效率啊-2分钟与475毫秒的对比
- 架构师知识体系(3)--系统架构管理实践
- Python学习笔记 - 列表生成式listComprehensions
- linux0.12之内存管理(1)-整体框架思路
- 使用Jsoup 抓取页面的数据
- HDOJ 2005 第几天?(水)