nefu 18 滑雪
2017-04-01 22:57
267 查看
http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=18
题意: 找一条从高到低的最长的路的长度;
思路:记忆化搜索,但是不知道在那个地方开始或者结束,所以所有的点都走一遍:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int maxn = 100 + 10;
int dp[maxn][maxn];
int a[maxn][maxn];
int derict[][2] =
{
-1,0,
1,0,
0,1,
0,-1
};
int n, m;
int dfs(int x, int y)
{
if (dp[x][y] != -1)
return dp[x][y];
int maxs = 0;
for (int i = 0; i < 4; i++)
{
int xx = x + derict[i][0], yy = y + derict[i][1];
if (xx >= 1 && xx <= n && yy >= 1 && yy <= m && a[x][y] > a[xx][yy])
{
maxs = max(maxs, dfs(xx, yy));
}
}
return dp[x][y] = maxs + 1;
}
int main()
{
while (~scanf("%d%d", &n, &m))
{
memset(dp, -1, sizeof(dp));
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
scanf("%d",&a[i][j]);
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
dfs(i, j);
}
int ans = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
ans = max(ans, dp[i][j]);
}
}
cout << ans << endl;
}
return 0;
}
题意: 找一条从高到低的最长的路的长度;
思路:记忆化搜索,但是不知道在那个地方开始或者结束,所以所有的点都走一遍:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int maxn = 100 + 10;
int dp[maxn][maxn];
int a[maxn][maxn];
int derict[][2] =
{
-1,0,
1,0,
0,1,
0,-1
};
int n, m;
int dfs(int x, int y)
{
if (dp[x][y] != -1)
return dp[x][y];
int maxs = 0;
for (int i = 0; i < 4; i++)
{
int xx = x + derict[i][0], yy = y + derict[i][1];
if (xx >= 1 && xx <= n && yy >= 1 && yy <= m && a[x][y] > a[xx][yy])
{
maxs = max(maxs, dfs(xx, yy));
}
}
return dp[x][y] = maxs + 1;
}
int main()
{
while (~scanf("%d%d", &n, &m))
{
memset(dp, -1, sizeof(dp));
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
scanf("%d",&a[i][j]);
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
dfs(i, j);
}
int ans = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
ans = max(ans, dp[i][j]);
}
}
cout << ans << endl;
}
return 0;
}
相关文章推荐
- NEFU18 滑雪
- NEFUOJ-18-滑雪
- 滑雪在日本 之 新泻篇 18
- NEFU OJ 18滑雪
- 18 滑雪 dp-4
- 《编写高质量代码:改善Java程序的151个建议》 建议18
- POJ - 1088:滑雪
- ThinkPHP教程--18--应用模块
- D18 storm原理与编程规范
- Bestcoder round 18---A题(素数筛+素数打表+找三个素数其和==n)
- 题目18:The Triangle
- 2014-10-18 来美半个月
- POJ 1088 滑雪(dp)
- BestCoder Round #18
- UI18-使用NSJSONSerialization方法解析JSON
- 18. Dubbo原理解析-服务调用
- Resnet-18-训练实验-warm up操作
- Vs2013在Linux开发中的应用(18): 应用程序调试方案
- 《MySQL入门很简单》学习笔记(18)之第18章性能优化(关键词:数据库/MySQL/性能优化)
- [BZOJ2753][SCOI2012]滑雪与时间胶囊(特殊的有向树形图)