题目描述 一个长度为 N 的序列 ai ,双方轮流操作 每次的操作是选择一个长度大于 1 的前缀,计算它的和 s ,然后 用 s 替换它的前缀,同时当前玩家获得 s 的分数. 当只剩下一个元素,游戏结束. 双方均想最大化 自己的分数-对手的分数,计算这个值. 输入输出样例 输入 #1 输出 #1 输入 #2 - - 输出 #2 - 解题思路 随便搞出来一个dp qwq AC Code const int N=1e6; int n; int a[N],k; int main() { scanf("…
简单DP i.May I ask you for a dance(体舞课软广植入) 这题的状态转移方程为:dp[i][j]=max(dp[i-1][j-1]+a[i][j],dp[i][j-1]);(i<=j) 方法1:预处理:将i==j的情况提取出来,因为当i==j的时候,序列顺序是固定的,只能从1选到i(感谢zzdl) 方法2:将i>=j的情况全部赋值为-inf,这样在选取的时候就能够保证i>=j不会被选取 方法3:好感度可能为负值,范围为-100~100:因为dp初始化为0,所以可…