Hdu 4597记忆化搜索
好久没有做题了,水平已经完全在学弟之下了。
一个吉林邀请赛最水的题目。:(
其实这题一看到数据范围,只可以想到思路,直接爆搜,加个记忆化。
这题虽然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记忆化搜索相关推荐
- hdu 4722(记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722 思路:简单的记忆化搜索,留意一下A==0时的情况就可以了. 1 #include<iost ...
- hdu 1142 记忆化搜索
题目是这样的,貌似一开始我这个英语搓的人还理解错了...orz http://acm.hdu.edu.cn/showproblem.php?pid=1142 就是最短路,只不过用dijkstra是从终 ...
- hdu 1514 记忆化搜索
题意是给4堆(堆的高度小于等于40)有颜色(颜色的种类小于等于20)的物品,你有一个篮子最多能装5件物品,每次从这4堆物品里面 任取一件物品放进篮子里,但是取每堆物品时,必须先取上面的物品,才能取下面 ...
- hdu 1078 记忆化搜索
题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物 虽然是做过的老题了,但是1A的感觉好爽,对搜索认识更深了 1 #include<cstdio> ...
- hdu 4597 Play Game(记忆化搜索)
题目链接:hdu 4597 Play Game 题目大意:给出两堆牌,仅仅能从最上和最下取,然后两个人轮流取,都依照自己最优的策略.问说第一个人对多的分值. 解题思路:记忆化搜索,状态出来就很水,dp ...
- hdu 4597 2013吉林通化邀请赛 Play Game 记忆化搜索
dp[ba][ta][bb][tb]表示a堆牌从下面拿了ba张,从上面拿了ta张.b堆牌从下面拿了bb张,从上面拿了tb张.当前玩家能得到的最大的分数. 扩展方式有4种,ba+1,ta+1,bb+1, ...
- HDU 1176 免费馅饼(记忆化搜索)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU 漫步校园 (记忆化搜索)
漫步校园 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- HDU 2452 Navy maneuvers (记忆化搜索)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2452 题意:给出一个图,n个点,m条边,保证无环,每个点有一个权值.指定一个点作为起点,Victory和G ...
- HDU 5001 概率DP || 记忆化搜索
2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP 測 ...
最新文章
- [翻译] FastReport Class Hierarchy (FastReport 组件类层次结构)
- Request mapping url and handler registration
- 禅道开源版用户手册_Docker搭建开源版禅道以及项目基本流程介绍
- 从PeopleEditor控件中取出多用户并更新到列表
- AES和RSA前后端加解密
- HTML 中多媒体设置:1、滚动字幕及滚动图片的设置 2、音乐视频的插入
- 音视频开发(16)---海康IPC+NVR+EasyDarwin+EasyPusher+VLC实现Web实时播放RTSP视频
- 分享java web 期末项目实验源码20套,BBS论坛,ERP管理系统,OA自动化等等
- 爬虫 requests模块的其他用法 抽屉网线程池回调爬取+保存实例,gihub登陆实例
- 初级第七课——模拟计算器
- 计算机中职课程表,计算机专业课程表
- win10安装cmder和WSL
- python 基于金字塔的图像融合
- 135、137、138、139和445端口解释及关闭方法
- mysql修改字段的名称类型_MySQL修改字段名和字段数据类型
- 101. 熟悉 Java 并发吗,谈谈对 JUC 线程池 ThreadPoolExecutor 的认识吧
- android http下载限速,安卓手机端两种让网盘不限速下载方法介绍
- IT30知识星球—工作报告7步曲
- 赚想赚钱的人的钱最好赚了
- 全景拍摄—焦距与对焦教程
热门文章
- ArcGIS 判断坐标系是否正确
- IDL实现遥感影像融合(批量)TASK(三)
- ARCGIS 分区统计的时候,出现无法解决的重大问题,程序崩溃
- Linux下rpm、yum和源码三种安装方式详细介绍
- 你的不好意思,正在摧毁你
- 如何用5年时间从菜鸟成长为技术总监?
- Android下磁盘分区表损坏,电脑硬盘分区表损坏怎么修复?电脑硬盘分区表损坏的修复方法...
- 接口自动化测试框架搭建(10、运行特定测试case,生成报告发送邮件)--python+HTMLTestRunnerCN+request+unittest+mock+db
- 算法知识点——(3)监督学习——决策树
- c语言游戏源码_【C语言/C++】益智游戏开发:2048(思路+源码详解)