UVA-10891 - Game of Sum
2013-01-23 18:35
363 查看
题意:两个人A,B玩游戏,轮流玩,A 先取,每个人每次只准在右边或左边拿1个或多个数,每个人都采取最优策略尽量让自己的得分高
问A-B的最大值
View Code
问A-B的最大值
View Code
// File Name: 10891.cpp // Author: zlbing // Created Time: 2013/1/23 17:46:22 #include<iostream> #include<string> #include<algorithm> #include<cstdlib> #include<cstdio> #include<set> #include<map> #include<vector> #include<cstring> #include<stack> using namespace std; #define MAXN 105 int A[MAXN]; int S[MAXN]; bool vis[MAXN][MAXN]; int d[MAXN][MAXN]; int dp(int i,int j) { if(vis[i][j])return d[i][j]; vis[i][j]=true; int ans=0; for(int k=i+1;k<=j;k++) ans=min(dp(k,j),ans); for(int k=i;k<j;k++) ans=min(dp(i,k),ans); d[i][j]=S[j]-S[i-1]-ans; return d[i][j]; } int main(){ int n; while(~scanf("%d",&n)) { if(!n)break; S[0]=0; for(int i=1;i<=n;i++) { scanf("%d",&A[i]); S[i]=S[i-1]+A[i]; } memset(vis,false,sizeof(vis)); int k=dp(1,n); printf("%d\n",2*k-S ); } return 0; }
相关文章推荐
- UVA 10891 Game of Sum dp(记忆化搜索)
- uva 10891 - Game of Sum
- UVA - 10891 —— Game of Sum
- uva10891 Game of Sum(博弈+区间dp+优化)
- UVA10891 Game of Sum
- Uva 10891 Game of Sum(区间博弈dp)
- Game of Sum - UVa 10891 dp
- UVA 10891 Game of Sum(区间DP)
- uva 10891 - Game of Sum
- UVA 10891 Game of Sum(区间DP)
- UVa UVA 10891 Game of Sum (区间DP)
- UVA-10891 Game of Sum
- UVA 10891 - Game of Sum*
- UVA 10891-Game of Sum(基础DP)
- UVa 10891 Game of Sum(经典博弈区间DP)
- Uva 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(记忆化搜索+博弈)
- UVA 10891——Game of Sum
- UVA 10891 Game of Sum(区间DP)
- UVa 10891 Game of Sum / 记忆化搜索