HDOJ 1078 FatMouse and Cheese(记忆化搜索)
来源:互联网 发布:淘宝商品取消分销 编辑:程序博客网 时间:2024/06/07 07:06
首先是英语理解错,导致题意弄得有点复杂
runs either horizontally or vertically to another location
这句的意思是横着跑或竖着跑,但并不意味着在一次到下一个点的运动中可以既横着有竖着跑,即每跑一次,路径是不拐弯的。。
这样的话就比较简单了。。
dp[i][j] = a[i][j] + max(dp[i1][j1]) ,点(i,j)可达点(i1,j1)
递推的话会无从下手,应该用记忆化搜索。
以前写记忆化搜索一直比较挫,甚至以为是我理解记忆化搜索有问题,这次居然 1Y 了。。感动。。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 110;int dpa[maxn][maxn];int a[maxn][maxn];int n, k;int dp(int x, int y){ if(dpa[x][y] != -1) return dpa[x][y]; int ret = 0; for(int i = 1; i <= k; i++) { if(x - i < 0) break; if(a[x-i][y] > a[x][y]) ret = max(ret, dp(x-i, y)); } for(int i = 1; i <= k; i++) { if(x + i >= n) break; if(a[x+i][y] > a[x][y]) ret = max(ret, dp(x+i, y)); } for(int i = 1; i <= k; i++) { if(y - i < 0) break; if(a[x][y-i] > a[x][y]) ret = max(ret, dp(x, y-i)); } for(int i = 1; i <= k; i++) { if(y + i >= n) break; if(a[x][y+i] > a[x][y]) ret = max(ret, dp(x, y+i)); } ret += a[x][y]; return dpa[x][y] = ret;}int main(){ while(scanf("%d%d", &n, &k) && n != -1) { for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) scanf("%d", &a[i][j]); memset(dpa, -1, sizeof(dpa)); printf("%d\n", dp(0, 0)); } return 0;}
0 0
- hdoj 1078 FatMouse and Cheese(记忆化搜索)
- HDOJ 1078 FatMouse and Cheese(记忆化搜索)
- hdoj 1078 fatmouse and cheese 记忆化搜索
- HDOJ 1078 FatMouse and Cheese 记忆化搜索模板
- HDOJ 题目1078 FatMouse and Cheese(记忆化搜索+DP)
- hdu1078 FatMouse and Cheese(记忆化搜索)
- HDU1078 FatMouse and Cheese 【记忆化搜索】
- hdoj1078 FatMouse and Cheese【记忆化搜索】
- hdu1078 FatMouse and Cheese 记忆化搜索
- HDU1078 FatMouse and Cheese记忆化搜索
- hdoj1078 FatMouse and Cheese(记忆化搜索)
- FatMouse and Cheese(记忆化搜索)
- hdu1078 fatmouse and cheese 记忆化搜索
- hdu1078 FatMouse and Cheese【记忆化搜索】
- hdu 1078 fatmouse and cheese 记忆化搜索
- hdu 1078 FatMouse and Cheese(深搜----记忆化搜索)
- hdu 1078 FatMouse and Cheese(dp 记忆化搜索)
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- 存储过程调用
- ubuntu 安装星际译王
- general error c101008d: Failed to write the updated manifest to the resource of file...
- git下载提交代码过程
- Java虚拟机学习 - 垃圾收集器
- HDOJ 1078 FatMouse and Cheese(记忆化搜索)
- Nexus入门指南(图文)
- 基于语法分析的PHP webshell扫描工具–Pecker Scanner
- 不同情景的同样问题:开机出现unable to load selinux policy
- Flex与Web应用程序整合技术分享
- Java虚拟机学习 - 对象内存分配与回收
- 黄金分割金华房间
- wget命令
- 巧用alias提高效率