1. 游戏

    ★ 输入文件:game1.in 输出文件:game1.out 简单对比

    时间限制:1 s 内存限制:128 MB

    USACO/game1

    A Game游戏

    译 by 肖遥

    描述

    有如下一个双人游戏:N(2 <= N <= 100)个正整数的序列放在一个游戏平台上,游戏由玩家1开始,两人轮流从序列的两端取数,取数后该数字被去掉并累加到本玩家的得分中,当数取尽时,游戏结束。以最终得分多者为胜。

    编一个执行最优策略的程序,最优策略就是使玩家在与最好的对手对弈时,能得到的在当前情况下最大的可能的总分的策略。你的程序要始终为第二位玩家执行最优策略。

    格式

    PROGRAM NAME: game1

    INPUT FORMAT:

    (file game1.in)

    第一行: 正整数N, 表示序列中正整数的个数。

    第二行至末尾: 用空格分隔的N个正整数(大小为1-200)。

    OUTPUT FORMAT:

    (file game1.out)

    只有一行,用空格分隔的两个整数: 依次为玩家一和玩家二最终的得分。

    SAMPLE INPUT

    6

    4 7 2 9 5 2

    SAMPLE OUTPUT

    18 11
/*
贪心能骗60.
果然不对.
(没写错就是果然)
*/
#include<iostream>
#include<cstdio>
using namespace std;
int ansa,ansb,n;
int main()
{
freopen("game1.in","r",stdin);
freopen("game1.out","w",stdout);
int x;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
if(i&1) ansa+=x;
else ansb+=x;
}
if(ansa<ansb) swap(ansa,ansb);
printf("%d %d",ansa,ansb);
return 0;
}
/*
区间DP.
f[i][j]表示[i,j] 1号取得的最大值.
然后看一下这个区间取哪个端点.
但是我们不能只关心端点.
因为要有两个人轮流取数.
对于一个区间[i,j]
如果一个人先手取了i,那么他后手取了[i+1,j]区间
一个人先手取了j,那么他后手取了[i,j-1]区间
*/
#include<iostream>
#include<cstdio>
#define MAXN 101
using namespace std;
int n,f[MAXN][MAXN],sum[MAXN];
void slove()
{
for(int i=n;i>=1;i--)
for(int j=i+1;j<=n;j++)
f[i][j]=max(sum[j]-sum[i-1]-f[i+1][j],sum[j]-sum[i-1]-f[i][j-1]);
}
int main()
{
freopen("game1.in","r",stdin);
freopen("game1.out","w",stdout);
int x;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
f[i][i]=x;
sum[i]=sum[i-1]+x;
}
slove();
printf("%d %d",f[1][n],sum[n]-f[1][n]);
return 0;
}

最新文章

  1. 如何升级PowerShell
  2. JavaScript之作用域与闭包详解
  3. android github
  4. python3.x 学习心得
  5. LeetCode题解——Two Sum
  6. PHP使用缓存生成静态页面
  7. RoadTrip 学习笔记
  8. STM32 + RT Thread OS 学习笔记[二]
  9. SE 2014年4月1日
  10. Centos-ip配置详解
  11. 最小生成树Prim
  12. Task 编程中的异常处理
  13. Android透明动画
  14. 下面为初学者分享一下SQL 数据库学习资料
  15. Django11-ModelForm
  16. Idea书签管理器的使用
  17. Linux: yum配置说明
  18. rds下载备份集
  19. Lua队列问题
  20. selenium webdriver处理浏览器Cookie

热门文章

  1. 启动Spring boot项目报错:java.lang.IllegalArgumentException: LoggerFactory is not a Logback
  2. java之struts2之异常处理
  3. ubuntu 迅雷 XwareDesktop
  4. This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567.
  5. Python接口自动化基础---cookie绕过登录
  6. 简述几个css hack?【CSS】
  7. 在SAP Hybris commerce Storefront里购物下单
  8. java数据库数据导入excel
  9. docker部署beego环境解决golang三方依赖库问题
  10. python之set集合、深浅copy初识、join()和fromkeys() 的用法