南阳理工OJ_题目1030 Yougth's Game[Ⅲ]
来源:互联网 发布:微博修改个性域名 编辑:程序博客网 时间:2024/05/29 11:48
//定义状态dp[i][j]为从i到j上先取数者的得分,那么后取数者的得分就是sum(i,j)-dp[i][j]//状态转移方程: //t1 = a[i]+(sum[j]-sum[i]-d[i+1][j]);取a[i],在剩余的i+1--j中,b先取,b取得的为d[i+1][j],//t2 = a[j]+(sum[j-1]-sum[i-1]-d[i][j-1]);sum[j]-sum[i]是i+1--j的和//d[i][j] = max(t1, t2);#include <iostream>#include <cstring>using namespace std;int dp();int n;int a[1010];int d[1010][1010];int sum[1010];int main(){ while(cin >> n) { sum[0] = 0; for(int i = 1; i <= n; i++) { cin >> a[i]; sum[i] = sum[i-1] + a[i]; } cout << dp() << '\n'; }}int dp(){ memset(d, 0, sizeof(d)); for(int l = 1; l <= n; l++) for(int i = 1, j = l; j <= n; j++, i++) { int t1, t2; t1 = a[i] + (sum[j] - sum[i] - d[i+1][j]); t2 = a[j] + (sum[j-1] - sum[i-1] - d[i][j-1]); d[i][j] = max(t1, t2); } return d[1][n] - (sum[n]-d[1][n]);}
0 0
- 南阳理工OJ_题目1030 Yougth's Game[Ⅲ]
- 南阳理工OJ_题目914 Yougth的最大化
- 南阳理工OJ_题目709 异形卵
- 南阳理工OJ_题目714 Card Trick
- 南阳理工OJ_题目16 矩形嵌套
- 南阳理工OJ_题目168 房间安排
- 南阳理工OJ_题目303 序号互换
- 南阳理工OJ_题目305 表达式求值
- 南阳理工OJ_题目308 Substring
- 南阳理工OJ_题目915 +-字符串
- 南阳理工OJ_题目18 The Triangle
- 南阳理工OJ_题目10 skiing
- 南阳理工OJ_题目995 硬币找零
- 南阳理工OJ_题目37 回文字符串
- 南阳理工OJ_题目311 完全背包
- 南阳理工OJ_题目47 过河问题
- 南阳理工OJ_题目91 阶乘之和
- 南阳理工OJ_题目891 找点
- 面向对象版计算器(六)
- C++ Primer 学习笔记_83_模板与泛型编程 --一个泛型句柄类
- 一道线程同步面试题
- jdk1.6 官网下载地址
- 每天学习一个linux命令(1):ls命令
- 南阳理工OJ_题目1030 Yougth's Game[Ⅲ]
- Rails: 从零到部署至服务器
- org.hibernate.hql.ast.QuerySyntaxException: XX is not mapped [from XX]
- 美居购怎么样?加盟店类型有哪些?
- 蜗牛—职场规则,总有几条你不知道
- intellij idea 13&14 插件推荐及快速上手建议 (已更新!)
- MFC CListBox 鼠标移动到一行就显示高亮的方法代码
- 获取当前URL、controller、action
- vb.net中,如何把byte array还原成为包含中文的字符串