题意:一个游戏,由n张贴纸组成。贴纸排成一排,并且纸条上标有数字,玩家轮流揭下m张从左到右连续的纸条(m大等2),揭下后玩家得分累加这些纸条的sum,并且在剩下纸条最左边贴上新的纸条,数值为揭下纸条的sum。最后只剩一张纸条时游戏结束。每个玩家的策略是使敌我分差尽可能大。求这个分差。

这道题是那一场最难的题,交的人最少,然而代码只有几行(一个for循环搞定

题解引入了一个“zero-sum game”来阐述这一类游戏,并且说这一类游戏通常用dp解(%%%

我们发现每个状态只跟我们已经取走了多少张纸条有关,我们设状态dp[i]表示已经取走i个纸条,一开始分差为0的状态,装的值为这种状态下最大分差

状态转移为dp[i]=max(sum[j]-dp[j])    i<j<=n

推的时候维护最大值,O(n)草翻这题(%%%%

 #include<bits/stdc++.h>
using namespace std;
#define N 200005
int n,s[N],dp[N],maxx;
int main(){
scanf("%d",&n); for(int a,i=;i<=n;i++) scanf("%d",&a),s[i]=s[i-]+a;
maxx=s[n];
for(int i=n-;i>=;i--)
dp[i]=maxx,maxx=max(maxx,s[i]-dp[i]);
printf("%d\n",dp[]);
return ;
}

cf731E的更多相关文章

  1. CF731E Funny Game

    题目描述 一个长度为 N 的序列 ai ,双方轮流操作 每次的操作是选择一个长度大于 1 的前缀,计算它的和 s ,然后 用 s 替换它的前缀,同时当前玩家获得 s 的分数. 当只剩下一个元素,游戏结 ...

  2. DP一下,马上出发

    简单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]);( ...

随机推荐

  1. poj1755Triathlon(半平面交)

    链接 根据题意可以设三段路程分别为A,B,C 那么总时间t = A/V+B/U+C/W. 这样根据时间大小关系可以跟其余n-1个联立形成n-1个方程. 化简后为A(1/vj-1/vi)+B(1/uj- ...

  2. Mysql ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA

    ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declar ...

  3. .net连接access操作类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  4. python 集合

    面向对象的集合: #coding:utf-8 __author__ = 'similarface' class Set: ''' list实现集合,及其集合操作 ''' def __init__(se ...

  5. easyui 上传文件代码

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;usi ...

  6. 三种语言(c++、as、lua)中函数的差异性

    对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...

  7. Eclipse 编译错误 Access restriction: The type 'JPEGCodec' is not API (restriction on required library 'C:\Program Files\Java\jre7\lib\rt.jar')

    解决方案:          Project -> Properties ->Java Build Path -> libraries,         先 remove 掉 JRE ...

  8. Form1和Form2的交互

    比如在第二个窗体中操作第一个窗体中的TreeView,动态添加节点和子节点. ------回答--------- ------其他回答(20分)--------- 尽量不要这样做.控件,窗体,你在.n ...

  9. VBA中四种自动运行的宏以及模块的含义

    在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate,  Auto_Deactivate. ...

  10. [Spring] spring-session + JedisPool 实现 session 共享

    1.至少导入四个jar包: jedis spring-session spring-data-redis commons-pool2 2.bean配置 <?xml version="1 ...