codevs3196 黄金宝藏

题目描述 Description

小毛终于到达宝藏点,他意外地发现有一个外星人(名叫Pluto)。宝藏是一些太空黄金,有n堆排成一行,每堆中有xi颗黄金。小毛和Pluto决定轮流从中取出黄金,规则是每次只能从最左边或最右边取出一堆黄金,直到所有黄金被取出。小毛先取,两人都以最优策略进行选取,求两人的最后所得。

输入描述 Input Description

第一行是正数n(≤500);第二行为n个正整数xi(≤300),表示每堆黄金的个数。

输出描述 Output Description

仅两个整数,分别表示小毛和Pluto的得分,以空格隔开。

样例输入 Sample Input

6

4 7 2 9 5 2

样例输出 Sample Output

18 11

正解:DP

解题报告:
  看到这是博弈的时候有一点慌。。。好吧其实只用了思想。

  显然DP可行,f[i][j]表示从i到j的区间的最优策略,最后f[1][n]即先手得分,总和减掉这个最优值即为后手得分。

  转移也比较好想,只是有一个地方比较神。显然由从左端选了一堆或者从右端选了一堆转移过来,而我们取得是较小的那个值,因为我们需要后手决策尽可能贡献小。

  细节看代码吧。

 1 //It is made by jump~
 2 #include <iostream>
 3 #include <cstdlib>
 4 #include <cstring>
 5 #include <cstdio>
 6 #include <cmath>
 7 #include <algorithm>
 8 #include <ctime>
 9 #include <vector>
10 #include <queue>
11 #include <map>
12 #include <set>
13 #ifdef WIN32
14 #define OT "%I64d"
15 #else
16 #define OT "%lld"
17 #endif
18 using namespace std;
19 typedef long long LL;
20 const int MAXN = 501;
21 int n;
22 int a[MAXN],sum[MAXN];
23 int f[MAXN][MAXN];//f[i][j]表示从i到j的最优策略得分
24
25 inline int getint()
26 {
27        int w=0,q=0;
28        char c=getchar();
29        while((c<‘0‘ || c>‘9‘) && c!=‘-‘) c=getchar();
30        if (c==‘-‘)  q=1, c=getchar();
31        while (c>=‘0‘ && c<=‘9‘) w=w*10+c-‘0‘, c=getchar();
32        return q ? -w : w;
33 }
34
35 inline void work(){
36     n=getint();
37     for(int i=1;i<=n;i++) a[i]=getint(),f[i][i]=a[i],sum[i]=sum[i-1]+a[i];
38     for(int len=1;len<=n-1;len++)
39     for(int i=1;i<=n-len;i++)
40         f[i][i+len]=sum[i+len]-sum[i-1]-min(f[i+1][i+len],f[i][i+len-1]);//减去部分是后手的决策最小值
41     printf("%d %d",f[1][n],sum[n]-f[1][n]);//总和减去先手最优决策即为后手得分
42 }
43
44 int main()
45 {
46   work();
47   return 0;
48 }
时间: 2024-10-18 00:38:45

codevs3196 黄金宝藏的相关文章

[CodeVs3196]黄金宝藏(状态压缩DP/极大极小搜索)

题目大意:给出n(≤500)个数,两个人轮流取数,每次可以从数列左边或者右边取一个数,直到所有的数被取完,两个人都以最优策略取数,求最后两人所得分数. 显然这种类型的博弈题,第一眼就是极大极小搜索+记忆化,但是我并不是很会极大极小搜索TAT.然后第二眼发现可以用状压写,而且显然比极大极小搜索好写啊.预处理出前缀和,然后f[i,j]表示从第i个数到第j个数先手可得到的最大得分,则有f[i,j]=sum[j]-sum[i-1]-min(f[i+1,j],f[i,j-1]);[第i个数到第j个数的和减

死忠粉分享的捕鱼寻宝攻略,亲测有效!

说起海洋,各位先想到的是什么?反正我第一感觉就是宝藏!宝箱!金子!(感觉这是看多了电影的后遗症),现在很多游戏里,都会设置一些寻宝任务,而这些任务的完成地点不是在山里的山洞就是在海里的深处.作为一个<满贯捕鱼>的死忠粉来说,很乐意把自己的一些攻略和心得体会分享给大家,前几天看到有小伙伴对深海寻宝任务的玩法有疑惑,接下来我就来说说自己的一些玩法. 首先玩家需要在登录界面选择"经典模式",进入该模式之后,玩家可以在三个渔场的任意房间开始游戏,然后点击右上角的"寻宝&q

【游戏推荐】黄金矿工--OGEngine精品游戏推荐系列【二】

"黄金矿工Ⅲ之神秘宝藏"是使用OGEngine开发的休闲类游戏,是黄金矿工系列的经典再现!无穷的宝藏等待你的挖掘.做好准备了吗?这里是无穷的金矿,闪耀的钻石迷惑你的双眼,更有百媚的购物小姐令你垂涎,她将提供丰富的工具,有助于你在限定时间内抓取到更多的宝藏,增加了"矿山"."草原"."沙漠"."海洋"."极地"五个场景,让你百玩不厌! 下载链接请猛戳>> http://m.wi

[FJOI2018]所罗门王的宝藏

所罗门王的宝藏 题意 据古代传说记载,所罗门王既是智慧的代表,又是财富的象征.他建立了强大而富有的国家,聚集了大批的黄金象牙和钻石,并把这些价值连城的珍宝藏在一个神秘的地方,这就是世人瞩目的"所罗门王的宝藏".多少个世纪以来,人们一直在寻找这批早已失落的古代文明宝藏,寻找盛产黄金和钻石的宝地.曾经追寻所罗门王宝藏的冒险者们都一去不回,至今没人解开这个谜题.亨利男爵在一次幸运的旅途中意外地得到了三百年前一位葡萄牙贵族留下的写在羊皮卷上的所罗门王的藏宝图和一本寻宝秘籍.在这张藏宝图的诱惑下

结对编程-黄金点游戏之旅[一]

黄金点游戏 游戏描述:黄金点游戏是一个数字小游戏,其游戏规则是N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 游戏机制设计:采用B/S模式,由客户端发起请求参加游戏,服务端接收请求处理,当满足游戏结算条件的时候向客户

Google”在垃圾中寻找黄金“——Page-Rank

GOOGLE"在垃圾中寻找黄金"--Page Rank GOOGLE"在垃圾中寻找黄金"--Page Rank 1.Google的低成本之道 ○不使用超级计算机,不使用存储(淘宝的去i,去e,去o之路) ○大量使用普通的PC服务器(去掉机箱,外设,硬盘),提供有冗余的集群服务 ○全世界多个数据中心,有些附带发电厂 ○运营商向Google倒付费 2.Google面对的数据和计算难题 大量的网页如何存储? Google的爬虫每天在全世界各个服务器里面爬到的很多网页,这些

!HDU 4380 三角屋内有奇数个宝藏的三角形有多少个-计算几何-(向量叉乘&amp;线段与点的关系&amp;暴力枚举)

题意:小明要买三座房子,这三个房子构成一个三角形,已知n个房子的坐标,任何三个房子都不在一条直线上,又已知有m个宝藏的坐标,问房子构成的三角形内有奇数个宝藏的三角形有多少个.数据范围:n(3~100),m(1~1000) 分析: 简单的计算几何.记住这题的做法. 三角形内的点的个数=上面的线段下面的点的个数 -- 下面两条线段下面的点的个数(或者下面一条线段减上面两条线段,看具体位置情况,所以直接取绝对值就好) n个点有n(n-1)/2条线段,不超过1W,枚举每条线段,再枚举每个宝藏的坐标(10

洛谷2403 [SDOI2010]所驼门王的宝藏

题目描述 在宽广的非洲荒漠中,生活着一群勤劳勇敢的羊驼家族.被族人恭称为“先知”的Alpaca L. Sotomon是这个家族的领袖,外人也称其为“所驼门王”.所驼门王毕生致力于维护家族的安定与和谐,他曾亲自率军粉碎河蟹帝国主义的野蛮侵略,为族人立下赫赫战功.所驼门王一生财宝无数,但因其生性节俭低调,他将财宝埋藏在自己设计的地下宫殿里,这也是今天Henry Curtis故事的起点.Henry是一个爱财如命的贪婪家伙,而又非常聪明,他费尽心机谋划了这次盗窃行动,破解重重机关后来到这座地下宫殿前.

伍旭霖:8.28黄金又迎新挑战,黄金走势和分析?

前言: 任何财富都是积累而来,涓涓细流汇之江海,伟大就是把简单的事情重复做,直到做到好为止,让淡定成为一种习惯,让冲动远离自己,这样成功会主动向你靠拢.把庄家杀光也不能拯救你的愚蠢,那是因为你经常激动,把策略给你也不能让你获利,那是因为你不相信.多空对错全在一念之间,千变万化但规律始终不变,强者恒强,弱者恒弱,改变是痛苦的,但不改变就会幻灭.唯有放下昨天,捡起今天,方可展望明天. 伍旭霖维新wxlds802黄金消息面回顾: 周五的两位大佬讲话内容由于耶伦的讲话并未提及货币政策,从而使得美指回落大