HDU 4597 Play Game(2013吉林通化邀请赛H)
2015-09-06 11:30
381 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4597
【解题报告】
过了好几天才过来补这道题……(羞愧)。
区间DP,设dp[k][l][m]
为当前局面为a堆k~l没取,b堆m~n没取的最优解,那么下一个状态在以下四个状态中产生:
dp[k+1][l][m]
;
dp[k][l-1][m]
;
dp[k][l][m+1]
;
dp[k][l][m][n-1]
对于dp[k][l][m]
这个局面,如何选择能达到最优解呢(注意alice和bob都是聪明人,所以他们选择的时候都会让自己的选择达到最优),显然是当他取过物品之后,下一个人面临的状态所能得到的价值最小,他能得到的总价值最大(注意k~l,m~n之间sum值一定)。根据这个原则更新dp值即可。
参考题解:http://blog.csdn.net/libin56842/article/details/38232327
【参考代码】
【解题报告】
过了好几天才过来补这道题……(羞愧)。
区间DP,设dp[k][l][m]
为当前局面为a堆k~l没取,b堆m~n没取的最优解,那么下一个状态在以下四个状态中产生:
dp[k+1][l][m]
;
dp[k][l-1][m]
;
dp[k][l][m+1]
;
dp[k][l][m][n-1]
对于dp[k][l][m]
这个局面,如何选择能达到最优解呢(注意alice和bob都是聪明人,所以他们选择的时候都会让自己的选择达到最优),显然是当他取过物品之后,下一个人面临的状态所能得到的价值最小,他能得到的总价值最大(注意k~l,m~n之间sum值一定)。根据这个原则更新dp值即可。
参考题解:http://blog.csdn.net/libin56842/article/details/38232327
【参考代码】
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a[50],b[50],n; int dp[25][25][25][25]; int dfs( int k, int l, int m, int n, int sum ) { if(k>l && m>n)return 0; if( dp[k][l][m] )return dp[k][l][m] ; int minn=sum; if(k<=l)minn=min( dfs(k+1,l,m,n,sum-a[k]), dfs( k,l-1,m,n,sum-a[l] ) ); if(m<=n) { minn=min( minn, dfs(k,l,m+1,n,sum-b[m]) ); minn=min( minn,dfs( k,l,m,n-1,sum-b ) ); } return (dp[k][l][m] =sum-minn); } int main() { // freopen("4597.txt","r",stdin); int t; cin>>t; while(t--) { int sum=0; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); sum+=a[i]; } for(int i=1;i<=n;i++){ scanf("%d",&b[i]); sum+=b[i]; } memset(dp,0,sizeof(dp)); printf("%d\n", dfs( 1,n,1,n,sum ) ); } return 0; }
相关文章推荐
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- LFC1.0.0 版本发布
- Android px、dp、sp之间相互转换
- android中像素单位dp、px、pt、sp的比较
- Android对px和dip进行尺寸转换的方法
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- DP问题各种模型的状态转移方程
- POJ-1695-Magazine Delivery-dp
- nyoj-1216-整理图书-dp
- TYVJ1193 括号序列解题报告
- 对DP的一点感想
- TYVJ上一些DP的解题报告
- soj1005. Roll Playing Games
- 01背包问题
- LeetCode之Maximum Product Subarray
- DP Flow
- zoj3605 Find the Marble(三维dp)
- Word Break I,II, Triangle,Palindrome Partitioning 动态规划 DP