poj 1088
来源:互联网 发布:ubuntu软件在哪下 编辑:程序博客网 时间:2024/06/02 01:28
题目概述
给定一个R行C列的矩阵,矩阵中每个位置均有一数,求在矩阵中任意位置开始,每次仅移动到周围相邻四格中数字小于当前位置的路径的最大长度
时限
1000ms/3000ms
输入
第一行两个正整数R,C,其后R行,每行C个正整数,为矩阵中数字,输入到EOF为止
限制
1<=R,C<=100;0<=矩阵中的数<=10000
输出
每行一个数,所求最大路径长度
样例输入
5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
样例输出
25
讨论
深搜+记忆化,应该算是这部分最老套的题目了,对每个点进行深搜,若深搜过则直接返回结果,否则就继续深搜,然后把结果存下来,所以最后只是对矩阵中每个点都深搜过一遍而已
题解状态
252K,16MS,C++,1001B
题解代码
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;#define INF 0x3f3f3f3f #define MAXN 103#define memset0(a) memset(a,0,sizeof(a))#define EPS 1e-6int R, C;//矩阵行数 列数int mat[MAXN][MAXN], dp[MAXN][MAXN];//matrix 矩阵原始数据 dp 名字是随手起的 记录深搜结果的矩阵int dc[4] = { -1,0,1,0 }, dr[4] = { 0,1,0,-1 };//方向矩阵 d是directionint dfs(int r, int c){ if (dp[r][c] != -1)//因为题目中说矩阵中最小的数是0 因而不能以0作为未深搜的标志 那就用-1 return dp[r][c]; int most = 0; for (int p = 0; p < 4; p++) if (r + dr[p] >= 0 && r + dr[p] < R&&c + dc[p] >= 0 && c + dc[p] < C&&mat[r + dr[p]][c + dc[p]] < mat[r][c])//不能超出矩阵 而且要严格减小 most = max(most, 1 + dfs(r + dr[p], c + dc[p])); dp[r][c] = most;//记录结果 return most;}int fun(){ for (int p = 0; p < R; p++) for (int i = 0; i < C; i++) { scanf("%d", &mat[p][i]);//input dp[p][i] = -1;//顺手初始化 } int most = 0; for (int p = 0; p < R; p++) for (int i = 0; i < C; i++) most = max(most, dfs(p, i)); return most + 1;//由于深搜的点自身没有算进去 因而要额外+1}int main(void){ //freopen("vs_cin.txt", "r", stdin); //freopen("vs_cout.txt", "w", stdout); while (~scanf("%d%d", &R, &C)) {//input printf("%d\n", fun());//output }}
EOF
0 0
- POJ 1088
- POJ 1088
- poj 1088
- poj 1088
- POJ 1088
- poj 1088
- poj 1088
- poj 1088
- poj 1088
- poj 1088
- poj 1088
- poj--1088
- POJ 1088
- poj 1088
- poj 1088
- POJ 1088
- poj 1088
- POJ 1088
- 对关键字的理解和使用
- 应用内测平台小记
- xUtils更新到3.0后的基本使用规则(转)
- odoo8百度地图模块
- 我的博客开通啦
- poj 1088
- eclipse Mars中安装properties插件
- glide框架显示图片
- 凑木棒
- 有哪些关于前端开发技术(HTML、CSS 和 JavaScript 等)的值得推荐的书籍?
- nefu 117素数个数的位数(位数问题)
- Android Studio中格式化代码
- Uncaught ReferenceError: $ is not defined (anonymous function)
- 菜鸡关于VC++6.0配置OpenCV时遇到的问题及解决方案