skiing
来源:互联网 发布:mac安装哪些常用软件 编辑:程序博客网 时间:2024/04/28 23:36
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
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。
- 输入
- 第一行表示有几组测试数据,输入的第二行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。
后面是下一组数据; - 输出
- 输出最长区域的长度。
- 样例输入
15 51 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9
- 样例输出
25
此题用动态规划
max(dfs(x,y-1,n,n,map[xy]),dfs(x-1,y,n,n,map[xy]),dfs(x+1,y,n,n,map[xy]),dfs(x,y+1,n,n,map[xy]))
#include<stdio.h>#include<memory.h>int R, C;int map[101][101];//各点高度int record[101][101];//各点最大滑雪长度inline int max(int a, int b) {//inline表示编译时直接嵌入至调用处,节省调用函数的时间return a > b ? a : b;}inline int max(int a, int b, int c, int d) {return max(max(a, b), max(c, d));}int dfs(int row, int col, int h) {//递归深搜if (row < 1 || row > R || col < 1 || col > R || h <= map[row][col])//超出范围或上一点高度低于该点高度return 0;//则返回0if (record[row][col] >= 0)//如果已经搜索过return record[row][col];//则直接返回该点最大化学长度record[row][col] = max(dfs(row - 1, col, map[row][col]),dfs(row, col + 1, map[row][col]), dfs(row + 1, col, map[row][col]),dfs(row, col - 1, map[row][col])) + 1;//动规,当前最大滑雪长度为四周比该点低的最大滑雪长度加1return record[row][col];}int main(void) {int T, i, j;scanf("%d", &T);while (T--) {memset(record, -1, sizeof(record));scanf("%d%d", &R, &C);for (i = 1; i <= R; ++i) {for (j = 1; j <= R; ++j) {scanf("%d", &map[i][j]);}}int max = 0;for (i = 1; i <= R; ++i) {for (j = 1; j <= R; ++j) {int num = dfs(i, j, 0xffffff);//通过16进制0xffffff方便地给出一个足够大的int型if (max < num)max = num;}}printf("%d\n", max);}return 0;}
0 0
- Skiing
- skiing
- skiing
- skiing
- Skiing
- Skiing
- Skiing
- skiing
- skiing
- skiing
- skiing
- skiing
- skiing
- Skiing
- skiing
- noj skiing
- NYOJ skiing
- 10 skiing
- 创业精神-昼夜奔袭,千里攻城拔寨
- Git客户端(Windows系统)的使用
- posters
- 哪里的民族特色最难忘
- Linux 权限
- skiing
- 看《我的帕瓦罗蒂》电影有感
- Opencv2.4.8 学习第一课 配置与加载图像
- 小黑小波比.git clone报错解决方案
- vim跳转命令
- 面试准备——最长公共子串
- SqlConnection,SqlCommand,SqldataReader的用法总结:
- Spring MVC的自动转换功能 HttpMessageConverter
- PHP计算每个月有多少工作日