这题和上次的通化邀请赛的那题一样,而且还是简化版本。。。
那题的题解 请戳这里
。。。
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
#define INF 0x3f3f3f3f
int dp[105][105];
int a[105];
int sum,n;
int pre_sum[105],next_sum[105];
int dfs(int b,int t,int sums)
{
if(dp[b][t]!=INF) return dp[b][t];
if(b+t==n) return 0;
int maxn=-INF;
for(int i=1;i+b+t<=n;i++)
{
maxn=max(maxn,sums-dfs(b+i,t,sum-pre_sum[b+i]-next_sum[n-t+1]));
maxn=max(maxn,sums-dfs(b,t+i,sum-pre_sum[b]-next_sum[n-t-i+1]));
}
return dp[b][t]=maxn;
}
int main()
{
while(scanf("%d",&n)&&n)
{
sum=0;
next_sum[n+1]=pre_sum[0]=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
pre_sum[i]=pre_sum[i-1]+a[i];
}
for(int i=n;i>=1;i--)
next_sum[i]=next_sum[i+1]+a[i];
memset(dp,0x3f,sizeof(dp));
dfs(0,0,sum);
printf("%d\n",dp[0][0]-(sum-dp[0][0]));
}
return 0;
}
分享到:
相关推荐
1.Uva_base的编译 在编译球队时,则需要在当前球队文件夹下打开终端输入执行以下命令(以下命令都是在root下执行的): ./configure make clean make 如果运行Uva_base后,出现球员越界或掉线的情况,就重新...
[UVA10409] DieGame
Uva(荷兰阿木斯特丹大学底层代码)用于Robocup前期练习的主要代码。
RoboCup 2001 Soccer Simulation Final(2_2).mp4
这是一支完整的uva球队,包含所有基本模块,初者可在上修改得到自己的球队
UVA 499 Solution in C/ C++
这是UVA133 TheDoleQueue救济金发放问题,经典的算法问题。初学算法的人要对这种算法非常熟悉并且能熟练运用。
开源项目-codingsince1985-UVa.zip,Been solving UVa Online Judge Problems in Golang for one year (and counting)
uva1347.cpp
UVa489.cpp
Modal Logic Patrick Blackburn patrick@coli.uni-sb.de Maarten de Rijke mdr@wins.uva.nl Yde Venema yde@wins.uva.nl
机器人足球的底层代码,提供到开发环境中去,希望大家一起分享
UVa solutions. Author: Tianyu Zhang
uva531最长公共子序列问题水题,应用简单的dp即可ac有更快速的方法欢迎讨论
matlab状态枚举法代码
UVA109的题解,经测试完全正确,还附有题解。
uva272
有uva刘汝佳文件夹的50道题解,从数据结构开始,以后慢慢上传
包含UVA在线OJ系统的绝大部分的示例代码,并都已AC,可在刷题时参考
uva705 Slash Maze 的代码,在UVaOJ上通过