题解:CF859C Pie Rules^_^
TainityAnle · · 题解
思路:
容易发现 Bob 得分一定比 Alice 高,所以我们只需要考虑当 Alice 用最优策略时 Bob 的最高得分,Alice 的得分就是总数减去 Bob 的得分。
思考什么情况下会给对方,什么情况下会给自己。
根据样例分析:
3
141 592 653
若 Bob 把
通过以上分析,我们发现不易确定当前这一步选的在下一步是否最优,也就是有后效性,所以正难则反,设
如果选这个值,那么下一个位置的决策就给了 Alice,那么
如果不选这个值,那么就等于
设
AC Code
#include<bits/stdc++.h>
using namespace std;
int n,a[55],sum[55],f[55];
int main() {
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];
for(int i=n; i>=1; i--) f[i]=max(f[i+1],sum[i+1]-f[i+1]+a[i]);
cout<<sum[1]-f[1]<<' '<<f[1];
return 0;
}