摘要: 刚看到这个题目不知道怎么个DP法,有点难想到解法如下设置dp[i][j]代表i到j这段子序列能获得的最大值,这样,枚举m=min(m,dp[i+1到j][j],dp[i][i到j-1]),m就代表了给另一个人的,就可求得就只能取到 dp[i][j]-sum(i,j)-m,这样,sum为该段序列总和,只需简单的数列前缀和即可求得sum,这样,只需枚举m值,不断向下进行记忆化搜索,即可求得终结果。#include #include #include using namespace std;int n;int dp[110][110];int vis[110][110];int s[110];int 阅读全文
posted @ 2014-02-27 16:35 KRisen 阅读(145) 评论(0) 推荐(0) 编辑