Yougth's Game[Ⅲ]
时间限制:3000 ms | 内存限制:65535 KB
难度:4

描述
有一个长度为n的整数序列,A和B轮流取数,A先取,每次可以从左端或者右端取一个数,所有数都被取完时游戏结束,然后统计每个人取走的所有数字之和作为得分,两人的策略都是使自己的得分尽可能高,并且都足够聪明,求A的得分减去B的得分的结果。

输入
输入包括多组数据,每组数据第一行为正整数n(1<=n<=1000),第二行为给定的整数序列Ai(-1000<=Ai<=1000)。

输出
对于每组数据,输出A和B都采取最优策略的情况下,A的得分减去B的得分的结果。

样例输入
3
1 2 3
4
2 4 5 3

样例输出
2
0

来源
Yougth原创

上传者
TC_杨闯亮

解题:dp题,dp[i][j]表示在剩下i到j时的最优结果,由于双方都采取最优策略,dp[a][b] = max(sum - dfs(a+1,b,sum-d[a]),sum - dfs(a,b-1,sum-d[b]))

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <climits>
#include <vector>
#include <queue>
#include <cstdlib>
#include <string>
#include <set>
#include <stack>
#define LL long long
#define pii pair<int,int>
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = ;
int dp[maxn][maxn],d[maxn],n;
int dfs(int a,int b,int sum){
if(a > b) return ;
if(dp[a][b]) return dp[a][b];
dp[a][b] = max(sum - dfs(a+,b,sum-d[a]),sum - dfs(a,b-,sum-d[b]));
return dp[a][b];
}
int main() {
while(~scanf("%d",&n)){
int sum = ;
for(int i = ; i <= n; ++i){
scanf("%d",d+i);
sum += d[i];
}
memset(dp,,sizeof(dp));
int ans = dfs(,n,sum);
printf("%d\n",*ans-sum);
}
return ;
}
/* */

最新文章

  1. jQuery实战
  2. poj3122 pie
  3. HDU 1518 Square
  4. CSS3属性text-overflow(省略符)实战开发详解
  5. 如何动态加载js文件,$.getScript()方法的使用
  6. Java JPA @Transient 在Hibernate中应用
  7. CDI Features(EL(SPEL),Decorator,Interceptor,Producer)
  8. 【c】多级指针
  9. MyEclipse 皮肤、主题、背景色
  10. vue项目中 axios 和Vue-axios的关系
  11. Java知多少(67)面向字符的输入流
  12. 【oauth2.0】【1】简单介绍
  13. WPF 分享一种背景动画效果
  14. Spring 整合Mybatis实例
  15. chapter02 三种决策树模型:单一决策树、随机森林、GBDT(梯度提升决策树) 预测泰坦尼克号乘客生还情况
  16. 针对铁定浏览器的css选择符
  17. EXCEPTION-El表达式
  18. spoj8222
  19. 强类型 和弱类型 c#
  20. Centos7yum安装LNMP

热门文章

  1. 解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架自动封装参数的功能
  2. Unknown tag (s:property).
  3. hdu 1556 线段树区间延迟更新好题
  4. oracle实现查询每个部门的员工工资排在前三的员工的基本信息具体举例
  5. 多线程的join和interrupt
  6. MVC发送邮件
  7. 2014.04.17,转帖,关于FFT的结果为什么要除以N
  8. 2014.08.04,读书,读书笔记-《Matlab概率与数理统计分析》-第1章 MATLAB的数据基础
  9. firewall 允许app访问网络
  10. 英语发音规则---S字母