HDU 4597 Play Game 2013 ACM-ICPC吉林通化全国邀请赛H题
九野的博客,转载请注明出处: http://blog.csdn.net/acmmmm/article/details/10833941
题意:给定T个测试数据,下面有2副牌,每副n张,每张都有一个分值
问:2个人轮流取牌,每次取一张(从任意一副的牌顶或牌底取),先手可获得的最大分值
开始往博弈想了,这题是记忆化搜索
- #include<stdio.h>
- #include<algorithm>
- #include<iostream>
- #include<set>
- #include<math.h>
- #include<string.h>
- #define N 25
- using namespace std;
- int card1[N],card2[N],sum1[N],sum2[N];
- int dp[N][N][N][N]; // dp[below1][top1][below2][top2] 表示当2个牌堆是这样时可以取得的最大值
- inline int Max(int a,int b){return a>b?a:b;}
- int dfs(int below1,int top1,int below2,int top2){//返回 牌堆是这样时能取得的最大值
- if(dp[below1][top1][below2][top2]!=-1)return dp[below1][top1][below2][top2];
- if(below1>top1 && below2>top2) {//牌堆取完
- dp[below1][top1][below2][top2]=0;
- return 0;
- }
- int sum=0,ans=0;//sum表示剩下牌堆的总分
- if(below1<=top1)sum+= sum1[top1]-sum1[below1-1];
- if(below2<=top2)sum+= sum2[top2]-sum2[below2-1];
- if(below1<=top1){
- ans=Max(ans,sum-dfs(below1+1,top1,below2,top2));
- ans=Max(ans,sum-dfs(below1,top1-1,below2,top2));
- }
- if(below2<=top2){
- ans=Max(ans,sum-dfs(below1,top1,below2+1,top2));
- ans=Max(ans,sum-dfs(below1,top1,below2,top2-1));
- }
- return dp[below1][top1][below2][top2]=ans;
- }
- int main(){
- int T,i,n;scanf("%d",&T);
- while(T--)
- {
- scanf("%d",&n);
- for(i=1;i<=n;i++)scanf("%d",&card1[i]);
- for(i=1;i<=n;i++)scanf("%d",&card2[i]);
- sum1[0]=sum2[0]=0;
- for(i=1;i<=n;i++)
- sum1[i]=sum1[i-1]+card1[i],sum2[i]=sum2[i-1]+card2[i];
- memset(dp,-1,sizeof(dp));
- printf("%d\n",dfs(1,n,1,n));
- }
- return 0;
- }
HDU 4597 Play Game 2013 ACM-ICPC吉林通化全国邀请赛H题的更多相关文章
- hdu 4438 第37届ACM/ICPC 天津赛区现场赛H题
题意:Alice和Bob两个人去打猎,有两种(只)猎物老虎和狼: 杀死老虎得分x,狼得分y: 如果两个人都选择同样的猎物,则Alice得分的概率是p,则Bob得分的概率是(1-p): 但是Alice事 ...
- HDU 4749 Parade Show 2013 ACM/ICPC Asia Regional Nanjing Online
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4749 题目大意:给一个原序列N,再给出一个序列M,问从N中一共可以找出多少个长度为m的序列,序列中的数 ...
- HDU 4751 Divide Groups 2013 ACM/ICPC Asia Regional Nanjing Online
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751 题目大意:判断一堆人能否分成两组,组内人都互相认识. 解题思路:如果两个人不是相互认识,该两人之 ...
- HDU 4731 Minimum palindrome 2013 ACM/ICPC 成都网络赛
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4731 题解:规律题,我们可以发现当m大于等于3时,abcabcabc……这个串的回文为1,并且字典数最小 ...
- HDU 4734 F(x) 2013 ACM/ICPC 成都网络赛
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4734 数位DP. 用dp[i][j][k] 表示第i位用j时f(x)=k的时候的个数,然后需要预处理下小 ...
- hdu 4497 GCD and LCM(2013 ACM-ICPC吉林通化全国邀请赛——题目重现)
质分解 + 简单计数.当时去比赛的时候太年轻了...这道题都没敢想.现在回过头来做了一下,发现挺简单的,当时没做这道题真是挺遗憾的.这道题就是把lcm / gcd 质分解,统计每个质因子的个数,然后 ...
- hdu 4431 第37届ACM/ICPC 天津赛区现场赛A题 枚举
题意:就是给了13张牌.问增加哪些牌可以胡牌.m是数字,s是条,p是筒,c是数字 胡牌有以下几种情况: 1.一个对子 + 4组 3个相同的牌或者顺子. 只有m.s.p是可以构成顺子的.东西南北这样 ...
- 2013 ACM/ICPC Asia Regional Changsha Online – C题 Color Representation Conversion (坑爹模拟题)
题意:给你三种颜色表示模式,RGB,HSV和HSL,实现任意模式之间两两转化. 1.最好别看题目中给的转化公式描述,我觉得叙述的一点也不清楚,看维基百科,把维基百科上的公式一句一句翻译过来就好 2.在 ...
- hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...
随机推荐
- Android4.2以及最新SDK的尝鲜使用
谷歌已经公布了Android4.2,而且也对应的更新了SDK到4.2.事实上最基本的是谷歌这次帮开发人员把eclipse.ADT.SDK整合 到了一起,我们仅仅须要下载一个ADT Boundle,就能 ...
- 2014年国内经常使用移动client推送服务介绍和比較
经过5年移动互联网的迅速发展,如今推送服务方面国内已经出现了非常多产品,比如极光推送,个推,一推,百度推送,友盟推送等,我们在选择推送服务时,首先排除了付费的推送服务,重点调查了免费的推送服务. ...
- service入门—电话监听器
1.继承Service类 2.在清单文件进行配置(因为Service属于四大组件之一) <service android:name=".PhoneStatusService" ...
- nodejs安装不了和npm安装不了的解决方法
http://caibaojian.com/nodejs-roll-back.html
- Ubuntu14.04更新源
Ubuntu14.04更新源 http://jingyan.baidu.com/article/7f41ecec1b7a2e593d095ce6.html Ubuntu源 http://wiki.ub ...
- javascript每日一练(二)——javascript(函数,数组)
一.函数 什么是函数 function show(){}//不带参数 function show(){return 123;}//不带参数,有返回值 function show(arg1, arg2, ...
- delphi模态窗体最小化会隐藏的问题
在使用delphi创建模态窗体的时候最小化窗体会导致最小化的窗体不可见,再次点击主窗体才会显示. 在这个模态窗体中增加以下函数 procedure WmSysCommand(var msg: TMes ...
- 一个大学生屌丝心中的seo梦
最 近这几天,我利用空闲时间去网上看到很多关于seoer的生存现状,尤为的感伤.因为自已也是一位爱好seo和利用闲于时间来学习seo的一个大学生屌 丝,在学习的过程中,有辛酸和泪水.但也有快乐,感觉一 ...
- 以交互方式使用exp/imp的演示
众所周知,用exp/imp对数据库进行逻辑备份.包含表.用户,整个数据库,我们通常所熟悉的是使用命令行指定參数的方式来做的.以下我来演示一下不太经常使用的以交互方式的操作,操作非常easy.就是仅仅要 ...
- QNX简介<转载>
QNX QNX是由QNX软件系统有限公司开发的实时操作系统. http://blog.csdn.net/happyhell/article/details/7087199 基本特征 * QNX是一个 ...