HDU-4597-区间DP-(博弈)
来源:互联网 发布:cp linux 直接覆盖 编辑:程序博客网 时间:2024/06/07 23:42
代码特别好理解,看完代码后再脑中的镜像和模模糊糊的感性使我快速的写完了。。。。
如果知识是这样轻易获得的就好了。。。
小a和小b在两个并列的数组中取数,每次都能取最大的。可以从两个的各首和尾。
小a天命所归先取。
用记忆化搜索。DP[A][B][C][D]表示的是在1数组 A-B,2数组C-D的情况下,小a获取的最大值。
(对边界的处理不错)
还有就是理解:我每次的最大值都是在别人取了一个之后的最大值。
(猜测他取了哪个)
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=30;int dp[maxn][maxn][maxn][maxn];int sum1[maxn];int sum2[maxn];int dfs(int a1,int a2,int b1,int b2){ int &ans=dp[a1][a2][b1][b2];int now;//现在剩的数 if(a1>a2){ now=sum2[b2]-sum2[b1-1]; if(b1==b2) { ans=now;return ans; }} else if(b1>b2){ now=sum1[a2]-sum1[a1-1]; if(a1==a2) { ans=now;return ans; }}else now=sum1[a2]-sum1[a1-1]+sum2[b2]-sum2[b1-1]; if(dp[a1][a2][b1][b2]!=-1) return dp[a1][a2][b1][b2]; if(a1<=a2) ans=max(ans,now-min(dfs(a1+1,a2,b1,b2),dfs(a1,a2-1,b1,b2))); if(b1<=b2) ans=max(ans,now-min(dfs(a1,a2,b1+1,b2),dfs(a1,a2,b1,b2-1))); cout<<ans<<"!"<<a1<<" "<<a2<<" "<<b1<<" "<<b2<<endl; return ans;}int main(){ std::ios::sync_with_stdio(false); int m; int a,b; int t; cin>>t; while(t--) { cin>>m; memset(dp,-1,sizeof(dp)); sum1[0]=0; sum2[0]=0; for(int i=1;i<=m;i++) {cin>>a; sum1[i]=sum1[i-1]+a; } for(int i=1;i<=m;i++) { cin>>b; sum2[i]=sum2[i-1]+b; } cout<<dfs(1,m,1,m)<<endl; } return 0;}
阅读全文
0 0
- HDU-4597-区间DP-(博弈)
- HDU 4597 Play Game (博弈 + 区间dp)
- hdu-4597 (博弈DP)
- 2013 ACM-ICPC吉林通化全国邀请赛 && HDU 4597 Play Game (博弈 + 区间dp)
- light oj 1031(区间dp+博弈)
- HDU-4597 Play Game (区间DP)
- hdu 4283(区间dp)
- hdu 5639(区间dp)
- HDU 1227(区间dp)
- hdu 4283 (区间dp)
- hdu 5900(区间DP)
- HDU-4283(区间DP)
- HDU-2476(区间DP)
- hdu 4283(区间dp)
- LightOJ-1031 博弈 区间DP
- HDU 4597 Play Game (DP,记忆化搜索,博弈)
- hdu 4597 Play Game (博弈dp)
- Uva 10891 Game of Sum(区间博弈dp)
- 2017年上海金马五校程序设计竞赛 C : Count the Number 深搜
- 有序广播
- 与Weex2.x的一次亲密接触(Web和IOS平台上共用一套代码)
- UVa 136 丑数
- POJ 1715 Hexadecimal Numbers 笔记
- HDU-4597-区间DP-(博弈)
- 洛谷3377【【模板】左偏树】--左偏树&并查集
- js添加class属性
- bzoj1533: [POI2005]Lot-A Journey to Mars
- windows+opencv的配置和使用
- 链式队列的实现与项目中的应用
- WEBGL 3D AR VR 梅花 骨骼动画 粒子系统
- Rxtx串口通信
- Java网络编程之服务器与客户端通信