HDU 4597 Play Game
博弈dp
1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <string> 5 using namespace std; 6 7 int d[30][30][30][30]; 8 int visit[30][30][30][30]; 9 int a[50],b[50]; 10 int suma[50],sumb[50]; 11 12 int dfs (int la,int ra,int lb,int rb){ 13 if (d[la][ra][lb][rb]) 14 return d[la][ra][lb][rb]; 15 if (la>ra&&lb>rb) 16 return 0; 17 if (la>ra&&lb==rb){ 18 return d[la][ra][lb][rb]=b[lb]; 19 } 20 if (la==ra&&lb>rb){ 21 return d[la][ra][lb][rb]=a[la]; 22 } 23 int sum=suma[ra]-suma[la-1]+sumb[rb]-sumb[lb-1]; 24 if (la<=ra){ 25 d[la][ra][lb][rb]=max (d[la][ra][lb][rb],sum-dfs (la+1,ra,lb,rb)); 26 d[la][ra][lb][rb]=max (d[la][ra][lb][rb],sum-dfs (la,ra-1,lb,rb)); 27 } 28 if (lb<=rb){ 29 d[la][ra][lb][rb]=max (d[la][ra][lb][rb],sum-dfs (la,ra,lb+1,rb)); 30 d[la][ra][lb][rb]=max (d[la][ra][lb][rb],sum-dfs (la,ra,lb,rb-1)); 31 } 32 return d[la][ra][lb][rb]; 33 } 34 35 int main (){ 36 int t,n; 37 scanf ("%d",&t); 38 while (t--){ 39 cin>>n; 40 suma[0]=0; 41 sumb[0]=0; 42 for (int i=1;i<=n;i++){ 43 scanf ("%d",&a[i]); 44 suma[i]=suma[i-1]+a[i]; 45 } 46 for (int i=1;i<=n;i++){ 47 scanf ("%d",&b[i]); 48 sumb[i]=sumb[i-1]+b[i]; 49 } 50 memset (d,0,sizeof d); 51 dfs (1,n,1,n); 52 cout<<d[1][n][1][n]<<endl; 53 } 54 return 0; 55 }
转载于:https://www.cnblogs.com/gfc-g/p/3963802.html
HDU 4597 Play Game相关推荐
- hdu 4597 Play Game(记忆化搜索)
题目链接:hdu 4597 Play Game 题目大意:给出两堆牌,仅仅能从最上和最下取,然后两个人轮流取,都依照自己最优的策略.问说第一个人对多的分值. 解题思路:记忆化搜索,状态出来就很水,dp ...
- hdu 4597 + uva 10891(一类区间dp)
题目链接:http://vjudge.net/problem/viewProblem.action?id=19461 思路:一类经典的博弈类区间dp,我们令dp[l][r]表示玩家A从区间[l, r] ...
- 【HDU - 4597】Play Game(博弈dp)
题干: Alice and Bob are playing a game. There are two piles of cards. There are N cards in each pile, ...
- hdu 4597 Play Game(区间dp)
本文出自 http://blog.csdn.net/shuangde800 题目链接: hdu-4597 题意 Alice和Bob玩一个游戏,有两个长度为N的正整数数字序列,每次他们两个 ...
- hdu 4597 2013吉林通化邀请赛 Play Game 记忆化搜索
dp[ba][ta][bb][tb]表示a堆牌从下面拿了ba张,从上面拿了ta张.b堆牌从下面拿了bb张,从上面拿了tb张.当前玩家能得到的最大的分数. 扩展方式有4种,ba+1,ta+1,bb+1, ...
- c语言字母和空格占的字节数,C语言之计算字符串最后一个单词的长度,单词以空格隔开...
Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语 ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
最新文章
- 《资安人》:迈向成功SOC之路
- hi3516配置wifi_HISI 3516A移植mt7601u的wifi驱动
- MyEclipse 的 TCP/IP Monitor 的使用
- PLSQL连接oracel数据库_用户无法登陆_oci.dll_配置问题
- Redis安装+启动报错
- 如何应对被地下的Oracle口令加密算法(2)
- 二叉树:一入递归深似海,从此offer是路人
- 学习理论:理论联系实际--演绎归纳演绎
- 排列组合常见公式集合
- springboot 返回二进制文件流
- Java自定义类的属性、方法结合数组简单使用
- 首届全国智能制造(中国制造2025)创新创业大赛在京启动
- SDUT-程序设计基础-实验1-顺序结构
- 超高分辨率大屏拼接工作站硬件选型
- 马来西亚php怎么样,科学网—游马来西亚的几点感想 - 梁生的博文
- HUST1005 渊子赛马【枚举】
- rx6800s什么水平N卡 rx6800s什么水平
- java常用加密算法
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之声卡驱动移植
- 初学者古琴入门知识——【唐畅古琴】