喵哈哈村的挑衅
来源:互联网 发布:淘宝买台式机 编辑:程序博客网 时间:2024/04/29 14:26
Problem Description
喵哈哈村就挨着哗啦啦村,他们很喜欢和哗啦啦村互黑~
今天也不例外,喵哈哈派了智商流选手 青君 去挑衅哗啦啦村
哗啦啦村当然不会畏惧这种弱的挑衅,于是派出了谈笑风生的 狗哥 应战!
青君和狗哥站在一个空地上,空地上有两排物品,每排都有n个,每个物品都有一定价值
每次每个人只能拿第一排的最左边的物品,或者拿第一排最右边的物品,或者第二排最左边的物品,或者第二排最右边的物品
狗哥 和 青君轮流拿~
青君先手,请问在狗哥绝顶聪明的情况下,青君所拿物品的最大价值是多少?
Input
多组测试数据,最多100组
第一行 一个数字n,表示每排有多少个物品。
第二行 n个数字,a[i]表示第一排,第i个物品的价值是多少
第三行 n个数字,b[i]表示第二排,第i个物品的价值是多少
1<=n<=25 1<=a[i]<=1000 1<=b[i]<=1000
Output
对于每组测试数据,输出一个整数,表示青君所能获得的最大价值是多少
Sample Input
1
23
53
3
10 100 20
2 4 3
Sample Output
53
105
一个博弈感觉的题目,每个人都是要拿当前最优的,那么写一个函数f,每个人都是拿f的,f里放四个常数,表示两排数的左右位置,表示取到什么地方了,状态只有四个,l1+1,l2+1,r1-1,r2-1;那么算出状态中最小的值,也就是让下一个人取其中的最小值,自己就一定是取到最大值,就向这个状态转移。
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<vector>#include<algorithm>#include<string>using namespace std;int a[30],b[30],leap[30][30][30][30],dp[30][30][30][30];int f(int l1,int r1,int l2,int r2){ if(leap[l1][r1][l2][r2]) return dp[l1][r1][l2][r2]; leap[l1][r1][l2][r2]=1; int sum = 0; int i; if(l1<=r1) { for(i=l1;i<=r1;i++) sum+=a[i]; } if(l2<=r2) { for(i=l2;i<=r2;i++) sum+=b[i]; } int ans=0; if(l1<=r1) { ans=max(ans,sum-f(l1+1,r1,l2,r2)); ans=max(ans,sum-f(l1,r1-1,l2,r2)); } if(l2<=r2) { ans=max(ans,sum-f(l1,r1,l2+1,r2)); ans=max(ans,sum-f(l1,r1,l2,r2-1)); } dp[l1][r1][l2][r2]=ans; return ans;}int main(){ int i, j, m, n, ans, t; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) cin>>b[i]; memset(leap,0,sizeof(leap)); cout<<f(1,n,1,n)<<endl; } return 0;}
0 0
- 喵哈哈村的挑衅
- 喵哈哈村的挑衅
- 喵哈哈村的挑衅(区间DP)
- DP ACdream 喵哈哈村的挑衅
- ACDream dp专题 B - 喵哈哈村的挑衅
- 办公室里的“挑衅”
- 喵哈哈村的魔法石
- 喵哈哈村的种花魔法
- qscoj:喵哈哈村的卢西奥
- 喵哈哈村的卢西奥(dfs)
- 一个无知人对Linux的挑衅
- 曾哥传 第六话 泰拳的挑衅
- 喵哈哈村的括号序列(初学栈)
- qscoj:喵哈哈村的狼人杀大战(5)
- 喵哈哈村的狼人杀大战(5)
- qscoj:喵哈哈村的烧烤店(阶梯博弈)
- 喵哈哈村的打印机游戏(区间DP)
- qscoj 喵哈哈村的打印机游戏(区间dp)
- 26-网络编程-05-网络编程(IP对象_InetAddress)
- LIBSVM数据格式及其使用
- [POI 2001][cogs 313]和平委员会
- Hama框架学习(三) Master如何将job规划到GroomServer
- javascript要点整理(一)
- 喵哈哈村的挑衅
- JAVA项目转Dynamic web project
- What Are You Talking About
- 杨柳青青 -by echo
- 内存管理(二)
- sdk manager 无法更新SDK的问题
- leetcode 126 —— Word Ladder II
- 网站客户端制作
- JavaScript Puzzlers (试题)