UVA 10891——Game of Sum
题意:给定一个长度为n的序列,两个人分别从两端开始取若干数,但是规定要么左,要么右,问双方都采取最优策略下A的总和减去B的值。
思路:区间dp,dp(i,j)表示先手的总和,那么状态转移方程便为dp(i,j)=sum(i,j)-min(左边取,右边取,0(取完)),记忆化搜索。
code:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int M=110;
int s[M],a[M],d[M][M],vis[M][M],n;int dp(int i,int j)
{if (vis[i][j]) return d[i][j];vis[i][j]=1;int m=0;for (int k=i+1;k<=j;k++) m=min(m,dp(k,j));for (int k=i;k<j;k++) m=min(m,dp(i,k));d[i][j]=s[j]-s[i-1]-m;return d[i][j];
}int main()
{while(cin>>n,n){s[0]=0;for (int i=1;i<=n;i++){cin>>a[i];s[i]=s[i-1]+a[i];}memset(vis,0,sizeof(vis));cout<<2*dp(1,n)-s[n]<<endl;}
}
UVA 10891——Game of Sum相关推荐
- 【UVA - 10891 Game of Sum 】【HRBUST - 1622】 Alice and Bob (区间dp,博弈问题)
题干: 有一个长度为N的整数序列,Alice和Bob轮流取数,Alice先取.每次玩家只能从左端或者右端 取一个或多个数,但不能两端都取.所有数都被取走后游戏结束,然后统计每个人取走的所有数之和, 作 ...
- [UVA 10891] Game of Sum
图片加载可能有点慢,请跳过题面先看题解,谢谢 很容易想到这样一个状态: \(dp[l][r]\) 表示,\(l\) 到 \(r\) 这一段区间,双方都使用最优策略时,先手能得到的最大分数 $ $ 那么 ...
- uva 10891 - Game of Sum
题解 白书上 总和一定的 dp 题:经典题 1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring ...
- UVA 10891 SUM游戏 DP
刚看到这个题目不知道怎么个DP法,有点难想到 解法如下 设置dp[i][j]代表i到j这段子序列能获得的最大值,这样,枚举m=min(m,dp[i+1到j][j],dp[i][i到j-1]),m就代表 ...
- hdu 4597 + uva 10891(一类区间dp)
题目链接:http://vjudge.net/problem/viewProblem.action?id=19461 思路:一类经典的博弈类区间dp,我们令dp[l][r]表示玩家A从区间[l, r] ...
- UVa在线比赛单题汇总-----DP专题
动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...
- 【LightOJ - 1031】Easy Game (区间dp,博弈)
题干: You are playing a two player game. Initially there are n integer numbers in an array and player ...
- 【CodeForces - 1038C】Gambling (博弈问题,优先队列模拟,贪心)
题干: Two players A and B have a list of nn integers each. They both want to maximize the subtraction ...
- π-Algorithmist分类题目(3)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...
最新文章
- DevExpress Asp.net(6) ASPxLoadingPanel的基本使用
- EVM反编译软件Porosity的使用-mac
- 剑指offer之【数组中的逆序对】
- jzoj3302-[集训队互测2013]供电网络【上下界网络流,费用流,动态加边】
- android listview自动加载更多,如何实现 Android ListView『上拉加载更多』?
- WordPress前台后台页面打开慢的解决方法
- 500并发 一台服务器的性能_面试官绝杀:系统是如何支撑高并发的?
- 女生体寒的·手脚冰凉的都来看了(男的替老婆收着)
- 安全加密 - 加密算法 - 摘要算法 - 秘钥交换协议 - 量子加密
- 认知学派用计算机来比拟人,比拟:把人当物写或把物当人来写的一种修辞方法,前者称之为拟物,后者称之为拟人.如:①做人既不可翘尾巴,也不可夹着尾巴. ②蜡炬成灰泪始干....
- foobar2000在线标签服务器,在Foobar2000播放器中从音乐名获取标签的技巧
- 命中有时终须有,命中无时莫强求--命理理论
- 上面两点下面一个三角形_章勤琼:三角形内角和180该如何说明 ——小学数学中的合情推理和演绎推理...
- Java 并发编程—— Exchanger 应用,java软件开发工程师面试题
- html中创建学生对象,在考生文件夹下,存在一个数据库文件“sampl.mdb”。在数据库文件中已经建立了一个表对象“学生基本情...
- wxpython应用程序_用wxPython创建GUI应用程序展示NASA图片(第一部分)
- 人力资源数据分析 - case 分析拉钩数据分析师岗位
- 破解AI开课难题!2021 全国人工智能师资培训落地厦门大学
- Time.deltaTime 用法
- Python数据分析案例14——文本计算TF-IDF值和LDA主题模型