题目链接:hdu 4597 Play Game

题目大意:给出两堆牌,仅仅能从最上和最下取,然后两个人轮流取,都依照自己最优的策略。问说第一个人对多的分值。

解题思路:记忆化搜索,状态出来就很水,dp[fl][fr][sl][sr][flag],表示第一堆牌上边取到fl,以下取到fr,相同sl。sr为第二堆牌,flag为第几个人在取。假设是第一个人,dp既要尽量大,假设是第二个人,那么肯定尽量小。

#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;const int N = 25;
const int INF = 0x3f3f3f3f;
int n, f[N], s[N], dp[N][N][N][N][2];void init () {memset(dp, -1, sizeof(dp));scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%d", &f[i]);for (int i = 1; i <= n; i++)scanf("%d", &s[i]);
}int solve (int fl, int fr, int sl, int sr, int flag) {int& ans = dp[fl][fr][sl][sr][flag];if (fl > fr && sl > sr)return ans = 0;if (ans != -1)return ans;if (flag) {ans = 0;if (fl <= fr) {ans = max(ans, solve(fl+1, fr, sl, sr, 1-flag) + f[fl]);ans = max(ans, solve(fl, fr-1, sl, sr, 1-flag) + f[fr]);}if (sl <= sr) {ans = max(ans, solve(fl, fr, sl+1, sr, 1-flag) + s[sl]);ans = max(ans, solve(fl, fr, sl, sr-1, 1-flag) + s[sr]);}} else {ans = INF;if (fl <= fr) {ans = min(ans, solve(fl+1, fr, sl, sr, 1-flag));ans = min(ans, solve(fl, fr-1, sl, sr, 1-flag));}if (sl <= sr) {ans = min(ans, solve(fl, fr, sl+1, sr, 1-flag));ans = min(ans, solve(fl, fr, sl, sr-1, 1-flag));}}return ans;
}int main () {int cas;scanf("%d", &cas);while (cas--) {init ();printf("%d\n", solve(1, n, 1, n, 1));}return 0;
}

hdu 4597 Play Game(记忆化搜索)相关推荐

  1. HDU 5001 概率DP || 记忆化搜索

    2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP  測 ...

  2. Palindrome subsequence HDU - 4632 区间dp|记忆化搜索

    // 区间dp import java.util.Scanner;/**** @author CN*/ public class main {static int mod = 10007;static ...

  3. hdu 5535 Cake 构造+记忆化搜索

    闯橙睦涛帕赂币昭操涎椅势崩昭酉饲环苛刑饶几涛每皇忠伤谥倘两够昭当膳唤帕菲淹负恫皇兰僬卣搪仗跃甲磕允康倘饶好睦考戮巳环几吓戮两几负必侵忠缆倘纠饶贪膳淹兰由沟几复倘饲拖昭刑焦僬把踪萍负蜕必梢陡合弛坡淹两操 ...

  4. hdu 4597 2013吉林通化邀请赛 Play Game 记忆化搜索

    dp[ba][ta][bb][tb]表示a堆牌从下面拿了ba张,从上面拿了ta张.b堆牌从下面拿了bb张,从上面拿了tb张.当前玩家能得到的最大的分数. 扩展方式有4种,ba+1,ta+1,bb+1, ...

  5. hdu 4722(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722 思路:简单的记忆化搜索,留意一下A==0时的情况就可以了. 1 #include<iost ...

  6. hdu 1142 记忆化搜索

    题目是这样的,貌似一开始我这个英语搓的人还理解错了...orz http://acm.hdu.edu.cn/showproblem.php?pid=1142 就是最短路,只不过用dijkstra是从终 ...

  7. HDU 1176 免费馅饼(记忆化搜索)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. HDU 漫步校园 (记忆化搜索)

    漫步校园 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

  9. HDU 2452 Navy maneuvers (记忆化搜索)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2452 题意:给出一个图,n个点,m条边,保证无环,每个点有一个权值.指定一个点作为起点,Victory和G ...

最新文章

  1. CodeForces - 960F[动态开点线段树优化dp]详解
  2. Aspose Cell设置Excel单元格背景色
  3. ELK学习6_Kafka-Logstash-Elasticsearch数据流操作
  4. springMVC+ajaxFileUpload中文名乱码的问题
  5. request_threaded_irq()
  6. stotybord如何添加子视图_SQL复杂查询-子查询
  7. win7系统0xt000000f错误代码的解决方法
  8. Binder线程处理请求
  9. RabbitMQ 中的 7 种队列模式,写得太好了!
  10. 求一个特定函数在定义区间上的值是否都为素数
  11. linux下用C计算某一个目录总大小
  12. 【笔记】深入理解 Java 虚拟机:类文件结构
  13. bldc不同载波频率_三相BLDC弦波驱动器-PT2511
  14. Spotfire使用经验-自定义饼图中显示的数据量(Top N分析,排名分析)
  15. 科技圈以 A 取名的时尚潮流
  16. 18种最实用的网站推广方法大全
  17. 如何描述缺陷(Defect)?
  18. Java设计模式实战 ~ 观察者模式分析与实战
  19. 接入广告App 教你如何赚取你的第一桶金 - 2048(含源码)
  20. python xlwt图表_python自动化办公(3)——Excel一键创建图表

热门文章

  1. Linux上新建文件夹并将另一个文件夹移动进来
  2. Ubuntu安装教程【超多图】
  3. 使用 FocusScopeNode 在 TextFormFields 之间轻松移动焦点
  4. 一张图告诉你BCH路线分歧的现状
  5. webrtc收包流程源码分析
  6. 并查集的一般操作 ③
  7. mysql utc 下取得昨天的时间段。
  8. 页面生命周期:DOMContentLoaded, load, beforeunload, unload
  9. Modbus网口设备接入多比物联网云平台教程
  10. U3D-LookAt插值动画