lightoj 1031 - Easy Game
来源:互联网 发布:巴西语翻译软件 编辑:程序博客网 时间:2024/04/30 13:11
区间dp;
这道题我是在看了几份阶梯报告之后才想通的,现在想想很符合动态规划的要求
d(i, j)表示取数的人在数组i 到 j中能取的的最大值,然后中间枚举分割点,
ans = max(ans, sum[k]-sum[i-1]-d(k+1, j));
ans = max(ans, sum[j]-sum[k-1]-d(i, k-1));
采用和记忆化搜索的方式
#include <cstdio>#include <algorithm>using namespace std;const int inf = 99999999;int dp[110][110], sum[110];int d(int i, int j){ int &ans = dp[i][j]; if(ans > -inf) return ans; ans = sum[j] - sum[i-1]; for(int k=i; k<=j; k++) { ans = max(ans, sum[k]-sum[i-1]-d(k+1, j)); ans = max(ans, sum[j]-sum[k-1]-d(i, k-1)); } return ans;}int main(){ int t, ca = 1; scanf("%d", &t); while(t--) { int n; scanf("%d", &n); sum[0] = 0; for(int i=1; i<=n; i++) for(int j=i+1; j<=n; j++) dp[i][j] = -inf; for(int i=1; i<=n; i++) { scanf("%d", &sum[i]); dp[i][i] = sum[i]; sum[i] += sum[i-1]; } printf("Case %d: %d\n", ca++, d(1, n)); } return 0;}
- lightoj 1031 - Easy Game
- lightoj 1031 - Easy Game
- LightOJ 1031-Easy Game
- Lightoj 1031 - Easy Game DP
- [LightOJ 1031]Easy Game[DP]
- LightOJ - 1031 Easy Game(区间DP)
- LightOJ 1031 - Easy Game(概率)
- LightOJ 1031 - Easy Game (区间dp)
- LightOJ 1031 Easy Game(区间DP)
- LightOJ 1031 - Easy Game【区间dp】
- lightoj 1031 - Easy Game 【区间dp】
- lightoj 1031 - Easy Game 【区间dp】
- lightoj 1031 Easy Game (区间dp 博弈)
- lightoj 1031 - Easy Game(区间DP)
- LightOJ 1031 Easy Game--区间dp
- lightoj 1031 - Easy Game 博弈类区间DP
- Easy Game
- Easy Game
- Erlang 性能测试
- 关于数据库事务、隔离级别、锁的理解与整理
- phoneme 编译注意事项~
- 黑马程序员_继承extends、final修饰符、抽象类abstract
- 开源日志库<log4cplus+VS2008使用>
- lightoj 1031 - Easy Game
- div+css+javascript 实现无缝滚动,marquee无缝滚动,无缝滚动,兼容firefox
- 学习Ruby语言的入门利器,你不得不看的文章
- List of freely available programming books
- Log4j日志文件输出为相对路径的解决方法
- poj 1936 All in All
- poj 1159 palindrome
- MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等
- ACM大牛博客