UVA - 10891 Game of Sum (区间DP)@
2017-05-16 08:20
561 查看
Game of Sum
UVA - 10891 题意:有一个序列,两个人A、B玩游戏, 每次可以从左端或者右端取任意个数字,两个人轮着来,两个人均按照最优的选法来,分数就是那个选的数字的和,A第一个选,问你最多A能比B多几分。
#include <iostream> #include <bits/stdc++.h> using namespace std; const int N = 110; int dp , a , sum ; int main() { int n; while(scanf("%d",&n),n!=0) { memset(dp,0,sizeof(dp)); memset(sum,0,sizeof(sum)); for(int i=1; i<=n; i++) { scanf("%d", &a[i]); dp[i][i]=a[i], sum[i]=sum[i-1]+a[i]; } for(int len=1; len<=n; len++) { for(int i=1; i+len<=n; i++) { int j=i+len; dp[i][j]=sum[j]-sum[i-1]; int m=0; for(int k=i; k<j; k++) { m=min(m,min(dp[i][k],dp[k+1][j])); } dp[i][j]=max(dp[i][j],sum[j]-sum[i-1]-m); } } cout<<2*dp[1] -(sum -sum[0])<<endl; } return 0; }
相关文章推荐
- UVA 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(区间DP)
- UVa 10891 Game of Sum(经典博弈区间DP)
- UVA 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(经典区间dp)
- UVa UVA 10891 Game of Sum (区间DP)
- UVA 10891 Game of Sum(区间博弈dp)***
- Uva 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(区间DP)
- UVa 10891 Game of Sum (区间DP&博弈)
- uva 10891 - Game of Sum(博弈,区间dp)
- uva10891 Game of Sum 博弈区间dp
- UVA 10891 Game of Sum(区间DP)
- UVA 10891 Game of Sum(区间DP)
- Uva 10891 - Game of Sum ( 区间dp )
- UVA - 10891 Game of Sum(记忆化搜索 区间dp)