Codeforces 859C - Pie Rules
阿新 • • 發佈:2018-02-01
clas decide using out set long long pan 代碼 思路
859C - Pie Rules
思路:
dp
我們知道無論誰拿到decider token他拿不拿蛋糕都是確定的,都是使自己最優的結果。
於是
定義狀態:dp[i]表示到第i個位置拿到decider token的人能使自己拿到的最大的值
初始狀態:dp[n]=a[n]
目標狀態:dp[1]
狀態轉移:dp[i]=max(dp[i+1],sum[i+1]-dp[i+1]+a[i])(sum[i]表示後綴和)
代碼:
#include<bits/stdc++.h> using namespace std; #define ll long long #definepb push_back #define mem(a,b) memset(a,b,sizeof(a)) int a[55]; int dp[55]; int sum[55]; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=n;i>=1;i--){ sum[i]=sum[i+1]+a[i]; dp[i]=max(sum[i+1]-dp[i+1]+a[i],dp[i+1]); } cout<<sum[1]-dp[1]<<‘ ‘<<dp[1]<<endl; return 0; }
Codeforces 859C - Pie Rules