[动态规划] Sum游戏 ( Game of Sum, Uva 10891 )
2015-03-02 21:11
302 查看
抓住状态转移方程即可 : 从子序列 i j 中取最大 = i + 从子序列i+1,j中取最大 或 j + 从子序列i,j-1中取最大
#include <algorithm> #include <cstring> #include <cstdio> using namespace std; const int maxn = 100+10; int S[maxn], A[maxn], d[maxn][maxn], vis[maxn][maxn], n; int dp(int i, int j){ if (vis[i][j]) return d[i][j]; vis[i][j] = 1; if (i == j) { d[i][j] = A[i]; return d[i][j]; } d[i][j] = max(A[i] + S[i+1,j] - dp(i + 1,j), A[j] + S[i,j - 1] - dp(i,j - 1)); return d[i][j]; } int main(){ while (scanf("%d", &n) && n){ S[0] = 0; for (int i = 1; i <= n;i++) { scanf("%d", &A[i]); S[i] = S[i - 1] + A[i]; } memset(vis, 0, sizeof(vis)); printf("%d\n", 2*dp(1, n)-S ); } return 0; }
相关文章推荐
- UVA10891[Game of Sum] 动态规划
- UVA 10891 Game of Sum (动态规划)
- UVa 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
- UVA - 10891 Game of Sum
- Uva - 10891 - Game of Sum
- Uva-10891-Game of Sum
- uva10891 - 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
- sum游戏 Game of sum uva 10891 动态规划 备忘录(记忆化搜索)
- uva_10891 - Game of Sum( 博弈区间DP )
- UVA 10891 Game of Sum
- uva 10891 - Game of Sum