1. 程式人生 > >Codeforces 859C - Pie Rules

Codeforces 859C - Pie Rules

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
#define
pb 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