好久没有做题了,水平已经完全在学弟之下了。

一个吉林邀请赛最水的题目。:(

其实这题一看到数据范围,只可以想到思路,直接爆搜,加个记忆化。

这题虽然A了,但是我还是没太想清楚一些边界情况,心虚着A了。

我的代码如下:

 1 /*************************************************************************
 2     > File Name: 4597.c
 3     > Author: Stomach_ache
 4     > Mail: 1179998621@qq.com
 5     > Created Time: 2014年03月02日 星期日 13时04分27秒
 6     > Propose:
 7  ************************************************************************/
 8 #include <stdio.h>
 9 #include <string.h>
10 #include <stdlib.h>
11
12
13 #define max(x, y) ((x) > (y) ? (x) : (y))
14 #define min(x, y) ((x) < (y) ? (x) : (y))
15
16
17 int a[22], b[22], dp[22][22][22][22], n, t;
18 int sum_a[22], sum_b[22];
19
20
21 int
22 dfs(int f1, int e1, int f2, int e2) {
23
24
25 if (dp[f1][e1][f2][e2] != -1)
26 return dp[f1][e1][f2][e2];
27 if (f1 > e1 && f2 > e2)
28 return dp[f1][e1][f2][e2] = 0;
29
30
31 int res = 0, sum = 0;
32 if (f1 <= e1) sum += sum_a[e1] - sum_a[f1-1];
33 if (f2 <= e2) sum += sum_b[e2] - sum_b[f2-1];
34
35
36 if (f1 <= e1) {
37 res = max(res, sum - dfs(f1+1, e1, f2, e2));
38 res = max(res, sum - dfs(f1, e1-1, f2, e2));
39 }
40 if (f2 <= e2) {
41 res = max(res, sum - dfs(f1, e1, f2+1, e2));
42 res = max(res, sum - dfs(f1, e1, f2, e2-1));
43 }
44
45
46 return dp[f1][e1][f2][e2] = res;
47 }
48
49
50 int
51 main(void) {
52
53
54 scanf("%d", &t);
55 while ( t-- ) {
56 scanf("%d", &n);
57 int i;
58 sum_a[0] = sum_b[0] = 0;
59 for (i = 1; i <= n; i++) {
60 scanf("%d", a+i);
61 sum_a[i] = sum_a[i-1]+a[i];
62 }
63 for (i = 1; i <= n; i++) {
64 scanf("%d", b+i);
65 sum_b[i] = sum_b[i-1]+b[i];
66 }
67
68
69 memset(dp, -1, sizeof(dp));
70 printf("%d\n", dfs(1, n, 1, n));
71 }
72
73
74 return 0;
75 }

转载于:https://www.cnblogs.com/Stomach-ache/p/3703269.html

Hdu 4597记忆化搜索相关推荐

  1. hdu 4722(记忆化搜索)

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

  2. hdu 1142 记忆化搜索

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

  3. hdu 1514 记忆化搜索

    题意是给4堆(堆的高度小于等于40)有颜色(颜色的种类小于等于20)的物品,你有一个篮子最多能装5件物品,每次从这4堆物品里面 任取一件物品放进篮子里,但是取每堆物品时,必须先取上面的物品,才能取下面 ...

  4. hdu 1078 记忆化搜索

    题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物 虽然是做过的老题了,但是1A的感觉好爽,对搜索认识更深了 1 #include<cstdio> ...

  5. hdu 4597 Play Game(记忆化搜索)

    题目链接:hdu 4597 Play Game 题目大意:给出两堆牌,仅仅能从最上和最下取,然后两个人轮流取,都依照自己最优的策略.问说第一个人对多的分值. 解题思路:记忆化搜索,状态出来就很水,dp ...

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

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

  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 ...

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

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

最新文章

  1. [翻译] FastReport Class Hierarchy (FastReport 组件类层次结构)
  2. Request mapping url and handler registration
  3. 禅道开源版用户手册_Docker搭建开源版禅道以及项目基本流程介绍
  4. 从PeopleEditor控件中取出多用户并更新到列表
  5. AES和RSA前后端加解密
  6. HTML 中多媒体设置:1、滚动字幕及滚动图片的设置 2、音乐视频的插入
  7. 音视频开发(16)---海康IPC+NVR+EasyDarwin+EasyPusher+VLC实现Web实时播放RTSP视频
  8. 分享java web 期末项目实验源码20套,BBS论坛,ERP管理系统,OA自动化等等
  9. 爬虫 requests模块的其他用法 抽屉网线程池回调爬取+保存实例,gihub登陆实例
  10. 初级第七课——模拟计算器
  11. 计算机中职课程表,计算机专业课程表
  12. win10安装cmder和WSL
  13. python 基于金字塔的图像融合
  14. 135、137、138、139和445端口解释及关闭方法
  15. mysql修改字段的名称类型_MySQL修改字段名和字段数据类型
  16. 101. 熟悉 Java 并发吗,谈谈对 JUC 线程池 ThreadPoolExecutor 的认识吧
  17. android http下载限速,安卓手机端两种让网盘不限速下载方法介绍
  18. IT30知识星球—工作报告7步曲
  19. 赚想赚钱的人的钱最好赚了
  20. 全景拍摄—焦距与对焦教程

热门文章

  1. ArcGIS 判断坐标系是否正确
  2. IDL实现遥感影像融合(批量)TASK(三)
  3. ARCGIS 分区统计的时候,出现无法解决的重大问题,程序崩溃
  4. Linux下rpm、yum和源码三种安装方式详细介绍
  5. 你的不好意思,正在摧毁你
  6. 如何用5年时间从菜鸟成长为技术总监?
  7. Android下磁盘分区表损坏,电脑硬盘分区表损坏怎么修复?电脑硬盘分区表损坏的修复方法...
  8. 接口自动化测试框架搭建(10、运行特定测试case,生成报告发送邮件)--python+HTMLTestRunnerCN+request+unittest+mock+db
  9. 算法知识点——(3)监督学习——决策树
  10. c语言游戏源码_【C语言/C++】益智游戏开发:2048(思路+源码详解)