CF731E Funny Game

题目描述

一个长度为 N 的序列 ai ,双方轮流操作

每次的操作是选择一个长度大于 1 的前缀,计算它的和 s ,然后 用 s 替换它的前缀,同时当前玩家获得 s 的分数。

当只剩下一个元素,游戏结束。

双方均想最大化 自己的分数-对手的分数,计算这个值。

输入输出样例

输入 #1

3
2 4 8

输出 #1

14

输入 #2

4
1 -7 -2 3

输出 #2

-3

解题思路

随便搞出来一个dp qwq

AC Code

const int N=1e6;
int n;
int a[N],k;
int main() {
    scanf("%d",&n);
    for(int i=1; i<=n; i++) {
        int hh;
        scanf("%d",&hh);
        a[i]=a[i-1]+hh;
    }
    int ans=a[n];
    for(int i=n-1; i>=1; i--)k=ans,ans=max(ans,a[i]-k);
    printf("%d\n",k);
    return 0;
}
View Code

猜你喜欢

转载自www.cnblogs.com/Larry-Zero/p/11750229.html