这是一个零和博弈,最高得分只和序列以及谁先手有关。

d[i][j],表示i到j的序列当前取的这个人的最高得分,转移以后状态是新的区间和另一个人取,从中取最小值。

决策的最小值也可递推。

#include<bits/stdc++.h>
using namespace std; const int MX = ;
int d[MX][MX],f[MX][MX],g[MX][MX];
int sum[MX]; //#define LOCAL
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
int n;
while(scanf("%d",&n),n){
for(int i = ; i <= n; i++){
scanf("%d",sum+i);
}
for(int i = ; i <= n; i++){
g[i][i] = f[i][i] = d[i][i] = sum[i];
sum[i] += sum[i-];
}
for(int L = ; L < n; L++){
for(int i = ; i+L <= n; i++){
int j = i+L;
d[i][j] = sum[j] - sum[i-] - min(,min(f[i+][j],g[i][j-]));
f[i][j] = min(d[i][j],f[i+][j]);
g[i][j] = min(d[i][j],g[i][j-]);
}
}
printf("%d\n",(d[][n]<<)-sum[n]);
}
return ;
}

最新文章

  1. 学习MySQL之数据类型(四)
  2. 「Unity」与iOS、Android平台的整合:2、导出的Android-Eclipse工程
  3. [Virtualization][SDN] VXLAN到底是什么 [转]
  4. 【原创】Android开发使用华为手机调试logcat没有应用输出信息
  5. kindeditor在sae上传文件修改,适合php
  6. js对象中什么是可枚举性(enumerable)?
  7. centos下一个bash: XXX: command not found解决方案
  8. Ajax的简单实用实例
  9. shell 脚本——判断条件
  10. vue 中如何对公共css、 js 方法进行单文件统一管理,全局调用
  11. jquery计算时间差(天、时、分、秒)并使用定时器实时获取
  12. Hadoop HDFS 的 HttpFS
  13. Beta 冲刺 四
  14. YII框架分析笔记2:组件和事件行为管理
  15. Log4j常用配置及使用
  16. scrum立会报告+燃尽图(第三周第五次)
  17. 为啥final类型的map或者arraylist可以修改数据 而final类型的String变量不可以修改数据呢
  18. 爪哇国新游记之一----第一个类Cube
  19. 【数位dp】bzoj1799: [Ahoi2009]self 同类分布
  20. CAD交互绘制虚线(网页版)

热门文章

  1. Excel .net读取
  2. cordova之旅之初识
  3. laravel ajax提交登陆存储session,并输出
  4. Litjson
  5. tarjan求割点割边的思考
  6. .Net WebApi接口Swagger集成简单使用
  7. Net Core免费开源分布式异常日志收集框架Exceptionless
  8. linux yum 安装
  9. 063 Unique Paths II 不同路径 II
  10. Yahoo!团队实践分享:网站性能优化的34条黄金守则