【CF 731E】Funny Game(DP)
2016-10-25 21:55
267 查看
【CF 731E】Funny Game(DP)
题目大意:
n个数字排成一排,两个人玩游戏。
游戏规则是,每次可以从最左边选择2个以上的数字合并,得分为选中数字的和,合并后生成的新数字为选中数字的和。
直到剩下一个数字,游戏结束。
两个人都希望与对方的最终得分差值尽量大,问先手最终与对方得分的差值为多少。两人足够聪明。
博弈的思想套上DP
考虑dp[i]为把1~i数字预先合并,生成一个新游戏局面,从当前局面开始玩,先手与对放最终得分的差值。
sum[i]为1~i的数字和
这样 dp[i]=max(sum[j]−dp[j])(i<j≤n)
因为对于dp[i]而言,先手会考虑将1~j数字合并的最佳方案。合并先手得分为sum[j],然后与之后解做差,取最大即为最佳方案。
从n跑到1即可 O(n)求解
代码如下:
题目大意:
n个数字排成一排,两个人玩游戏。
游戏规则是,每次可以从最左边选择2个以上的数字合并,得分为选中数字的和,合并后生成的新数字为选中数字的和。
直到剩下一个数字,游戏结束。
两个人都希望与对方的最终得分差值尽量大,问先手最终与对方得分的差值为多少。两人足够聪明。
博弈的思想套上DP
考虑dp[i]为把1~i数字预先合并,生成一个新游戏局面,从当前局面开始玩,先手与对放最终得分的差值。
sum[i]为1~i的数字和
这样 dp[i]=max(sum[j]−dp[j])(i<j≤n)
因为对于dp[i]而言,先手会考虑将1~j数字合并的最佳方案。合并先手得分为sum[j],然后与之后解做差,取最大即为最佳方案。
从n跑到1即可 O(n)求解
代码如下:
#include <iostream> #include <cmath> #include <vector> #include <cstdlib> #include <cstdio> #include <climits> #include <ctime> #include <cstring> #include <queue> #include <stack> #include <list> #include <algorithm> #include <map> #include <set> #define LL long long #define Pr pair<int,int> #define fread(ch) freopen(ch,"r",stdin) #define fwrite(ch) freopen(ch,"w",stdout) using namespace std; const int INF = 0x3f3f3f3f; const int mod = 1e9+7; const double eps = 1e-8; const int maxn = 212345; int num[maxn]; LL sum[maxn],dp[maxn]; int main() { //fread(""); //fwrite(""); int n; scanf("%d",&n); sum[0] = 0; for(int i = 1; i <= n; ++i) { scanf("%d",&num[i]); sum[i] = sum[i-1]+num[i]; } LL mx = sum ; dp = sum ; for(int i = n-1; i >= 1; --i) { dp[i] = mx; mx = max(mx,sum[i]-dp[i]); } printf("%lld\n",dp[1]); return 0; }
相关文章推荐
- 【Codeforces 731E】 Funny Game【dp】
- CF 708C. Centroids 树形dp
- CF - 813D. Two Melodies - dp
- 【CF 189A Cut Ribbon】dp
- CF 269D Maximum Waterfall(线段树,DP)
- CF-51E - Pentagon(DP)
- CF(D. Fibonacci Sums)dp计数
- cf 682 C (树形dp)
- CF 148D. Bag of mice[概率dp]
- 【CF 698C】 LRU(概率DP)
- [DP决策单调性][分治] CF 868F. Yet Another Minimization Problem
- CF618D:Hamiltonian Spanning Tree(贪心 & 树形dp & 最小路径覆盖)
- CF 788A Functions again (dp)
- CF 581F Contest Page 树形DP
- CF_dp
- CF 219D Choosing Capital for Treeland (树形dp)
- CF 55D - Beautiful numbers(数位DP)
- HDU 4632 CF 245H 区间DP(回文)
- CF#369(Div2) C. Coloring Trees (DP)
- CF 148D D. Bag of mice (概率DP)