POJ 1088 滑雪 (DP)
2017-08-02 10:37
423 查看
还是感叹别人的码写的真好!!以及没事别用C++,,真的比C慢很多。。。。
#include <cstdio> #include <cstring> #include <iostream> using namespace std; int n, m; int map[1000][1000]; int ans[1000][1000]; //存储每一个点能滑到的最大距离 int dp(int i, int j) { //局部最优解 if (ans[i][j] > 0) //避免重复计算 return ans[i][j]; int maxn = 0; int dir[4][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}}; int tempi, tempj; for (int k = 0; k < 4; k++) { tempi = i + dir[k][0]; tempj = j + dir[k][1]; if (tempi > 0 && tempi <= n && tempj > 0 && tempj <= m && map[tempi][tempj] < map[i][j]) { maxn = max(maxn, dp(tempi, tempj)); } } return ans[i][j] = maxn + 1; } int main(void) { while (~(scanf("%d%d", &n, &m))) { int answer = 0; memset(map, 0, sizeof(map)); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) scanf("%d", &map[i][j]); } memset(ans, 0, sizeof(ans)); for (int i = 1; i <= n; i++) { //遍历每一个点 for (int j = 1; j <= m; j++) { ans[i][j] = dp(i, j); answer = max(ans[i][j], answer); //整体最优解 } } printf("%d\n", answer); } return 0; }
相关文章推荐
- poj 1088 滑雪 深搜(谁说是DP了!)
- poj 1088 滑雪DP
- POJ-1088 滑雪 (dfs + 线性dp)
- POJ-1088 滑雪 dp
- POJ 1088 滑雪 记忆化DP
- poj 1088 滑雪 DP(dfs的记忆化搜索)
- POJ 1088 滑雪(DP)
- poj 1088 滑雪(线性DP)
- poj1088 滑雪(dfs、dp优化)
- poj1088——滑雪(记忆化dp)
- poj 1088 滑雪 DP
- Poj_1088_滑雪(DP)
- 【DP动归】【DFS】POJ-1088 滑雪
- POJ-1088 滑雪 (记忆化搜索,dp)
- POJ 1088 滑雪 (DFS+DP)
- poj 1088 滑雪 dp
- 深搜+DP--POJ 1088 滑雪
- POJ 1088 滑雪 && HDU 1078 FatMouse and Cheese (坐标DP两题对比)
- Poj_1088_滑雪(DP)
- poj 1088 滑雪【DP备忘录】