HDU - 1078 FatMouse and Cheese(记忆化搜索)
来源:互联网 发布:软件测试方案内容 编辑:程序博客网 时间:2024/06/03 06:08
题目大意:有一个N*N的矩阵,每个矩阵上都有相应的数字,出发点为(1,1)
现在有规则如下:每次最多只能移动k的距离,且下一个移动的位置的大小必须要大于上一个
问移动完后,能获得的矩阵的数字的最大和
解题思路:记忆化搜索裸题了
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 110;int n, k;int map[N][N], dp[N][N];int dir[4][2] = {{1, 0}, {-1, 0}, {0, -1}, {0, 1}};void init() { for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) scanf("%d", &map[i][j]); memset(dp, -1, sizeof(dp));}int dfs(int x, int y) { if (dp[x][y] + 1) return dp[x][y]; int tx, ty, Max = 0; for (int i = 1; i <= k; i++) for (int j = 0; j < 4; j++) { tx = x + i * dir[j][0]; ty = y + i * dir[j][1]; if (tx < 1 || ty < 1 || tx > n || ty > n || map[tx][ty] <= map[x][y]) continue; Max = max(Max, dfs(tx, ty)); } return dp[x][y] = Max + map[x][y];}int main() { while (scanf("%d%d", &n, &k) != EOF) { if (n == -1 && k == -1) break; init(); printf("%d\n", dfs(1, 1)); } return 0;}
0 0
- hdu 1078 fatmouse and cheese 记忆化搜索
- hdu 1078 FatMouse and Cheese(深搜----记忆化搜索)
- hdu 1078 FatMouse and Cheese(dp 记忆化搜索)
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- hdu 1078 FatMouse and Cheese 记忆化搜索
- hdu 1078 FatMouse and Cheese (记忆化搜索 )
- HDU 1078 FatMouse and Cheese(记忆化搜索)
- hdu(1078) FatMouse and Cheese (记忆化搜索+dp)
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- HDU 1078 FatMouse and Cheese(记忆化搜索)
- hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)
- hdu-1078 FatMouse and Cheese(记忆化搜索)
- 【记忆化搜索】HDU-1078 FatMouse and Cheese
- HDU--1078--FatMouse and Cheese--记忆化搜索
- FatMouse and Cheese (hdu 1078 记忆化搜索)
- P - FatMouse and Cheese HDU 1078 ( 记忆化搜索 )
- hdu 1078 FatMouse and Cheese(记忆化搜索)
- 大数计算问题
- arm7 指令系统
- datasheet下载网站 tps65951中文版手册
- Android消息处理机制-Looper、Handler、Thread
- printf()输出格式大全
- HDU - 1078 FatMouse and Cheese(记忆化搜索)
- ARM_SWP指令用法
- 孙鑫VC++深入详解:Lesson8 Part3---如何让对话框捕获WM_KEYDOWN消息?
- SpriteBuilder中锚点的一般用法
- java中泛型的应用
- WDF与WDM区别 之一
- 多线程(八):线程池
- 基本Kmeans算法介绍及其实现
- static使用