题意:一个游戏,由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. 笔记本_hp

    1.技术支持 http://support.hp.com/cn-zh 2.搜到的信息:“http://forum.51nb.com/thread-1080424-1-1.html” Product N ...

  2. java的重修之路

    一.内存管理 java里的声明分引用与基本数据类型. 数组: java里new一个对象数组为  person[] A; A = new person[4];  person[0] = new pers ...

  3. JavaWeb学习总结(十一)--JDBC之批处理

    一.批处理的介绍 在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率.批处理只针对更新(增.删.改)语句,批 ...

  4. [css] 浏览器字体和css设置字体之间的关系

    原文链接:http://www.zhangxinxu.com/wordpress/2010/06/%E5%8F%AF%E7%94%A8%E6%80%A7%E4%B9%8B%E6%B5%8F%E8%A7 ...

  5. OpenGL中各种坐标系的理解[转]

    OPENGL坐标系可分为:世界坐标系和当前绘图坐标系. 世界坐标系:在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的.你面对 屏幕,你的右边是x正轴,上面是y正轴,屏幕 ...

  6. Hbase之遍历超时处理

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...

  7. mysql 截断

    当id为int是,如果是10位数,可以插入,primary key不能重复插入,其默认值可以为NULL一个varchar字段的值如果长度设定为255,则如果其长度为256也可以插入,但已经被截取到了2 ...

  8. SSH2 架构常用注解

    1. @Repository 将 DAO 类声明为 Bean 2.@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次. 3.@Service 通常作用在业务层 ...

  9. libCEF总结01下载、编译、入门

    目 录 第1章 下载    1 1.1 下载    1 1.2 合并    1 第2章 cmake    4 2.1 编译简介    4 2.2 下载cmake    4 2.3 运行cmake    ...

  10. 图片左右滚动的js代码

    html代码 <div class="demo" id="demo" style="overflow:hidden; width:660px; ...