POJ 1678 I Love this Game!(博弈DP)
2012-08-09 10:59
288 查看
转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents
by---cxlove
题意:有N个数,有一个区间[A,B],第一个人先取一个数,必须在区间内,后一次取必须比第一个数大,而且差值在区间内。问最后两个人取的数的和的差值最大为多少。
http://poj.org/problem?id=1678
后面的人取的肯定要比前面的人取的要大,那么先排序,就可以依次取。
我们用记忆化搜索,dp[m]表示如果先手取了第m个数,可以达到的最大分差。
那么最后一次取的分差就是本身。
枚举第一个人取的数,必须在区间内。
by---cxlove
题意:有N个数,有一个区间[A,B],第一个人先取一个数,必须在区间内,后一次取必须比第一个数大,而且差值在区间内。问最后两个人取的数的和的差值最大为多少。
http://poj.org/problem?id=1678
后面的人取的肯定要比前面的人取的要大,那么先排序,就可以依次取。
我们用记忆化搜索,dp[m]表示如果先手取了第m个数,可以达到的最大分差。
那么最后一次取的分差就是本身。
枚举第一个人取的数,必须在区间内。
#include<iostream> #include<cstdio> #include<ctime> #include<cstring> #include<algorithm> #include<cstdlib> #include<vector> #define C 240 #define TIME 10 #define inf 1<<25 #define LL long long using namespace std; int num[10005],n,t,a,b; int dp[10005]; int DP(int m){ if(dp[m]!=-inf) return dp[m]; int ans=inf; for(int i=m+1;i<n;i++){ //对方是尽可能取差值大的,所以差值是尽可能小 //或者写成ans=max(ans,DP(i)) //最后再用num[m]-ans if(num[i]-num[m]>=a&&num[i]-num[m]<=b) ans=min(ans,num[m]-DP(i)); } if(ans==inf) return dp[m]=num[m]; return dp[m]=ans; } int slove(){ int ans=-inf; for(int i=0;i<n;i++) if(num[i]>=a&&num[i]<=b) ans=max(ans,DP(i)); return ans==-inf?0:ans; } int main(){ scanf("%d",&t); while(t--){ scanf("%d%d%d",&n,&a,&b); for(int i=0;i<n;i++){ dp[i]=-inf; scanf("%d",&num[i]); } sort(num,num+n); printf("%d\n",slove()); } return 0; }
相关文章推荐
- poj 1678 I Love this Game!(博弈dp)
- POJ 1678 I Love this Game!(博弈DP)
- poj 1678 I Love this Game!(博弈dp)
- POJ 1678 I Love this Game!(博弈)
- poj 1678 I Love this Game!
- poj1678 I Love this Game!
- POJ 1678[I Love this Game!]题解
- POJ 1678 I Love this Game! 笔记
- POJ 1678 I Love this Game!
- poj1678 I Love this Game!
- POJ-1678 I Love this Game!(博弈论)
- POJ 1678 I Love this Game!#dp博弈
- pku1678 I Love this Game!
- POJ 3688 Cheat in the Game (博弈 dp)
- 携程第二场 Poj 1182 食物链(带权并查集) Poj 1948 Triangular Pastures Poj(dp二维背包) 1740 A New Stone Game(博弈)
- 【POJ 3688 Cheat in the Game】+ dp + 巴什博弈
- I Love This Game 2115
- poj 2484 A Funny Game 博弈(对称)
- POJ 2488-A Funny Game(简单博弈)
- POJ 1740 A New Stone Game(博弈)