http://poj.org/problem?id=1088

校运会放假继续来水一发^ ^

不过又要各种复习,功课拉下了许多 QAQ。

还有呀,就是昨天被一个学姐教育了一番,太感谢了,嘻嘻^ ^

好了,说正事~

题目大意:

中文题吖,就不用我说了哈哈~~~~~~做中文题真舒服,不用开词典^ ^

思路:

搜索的时候显然会有重复的所以采用记忆化搜索。

顺带用了下宏定义,让代码简洁点。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. using namespace std;
  5. #define F(i,R) for(int i=0;i<R;i++)
  6. int a[101][101];
  7. int ans[101][101];
  8. int R,C;
  9.  
  10. int dfs(int r,int c)
  11. {
  12. if(ans[r][c]>0)
  13. return ans[r][c];
  14.  
  15. int temp=0,res=1;
  16. if(r<R-1 && a[r][c] > a[r+1][c])
  17. res=dfs(r+1,c)+1;
  18.  
  19. if(c<C-1 && a[r][c] > a[r][c+1])
  20. {
  21. temp=dfs(r,c+1)+1;
  22. res = res> temp ? res: temp;
  23. }
  24. if(r>=1 && a[r][c] > a[r-1][c])
  25. {
  26. temp=dfs(r-1,c)+1;
  27. res = res> temp ? res: temp;
  28. }
  29. if(c>=1 && a[r][c] > a[r][c-1])
  30. {
  31. temp=dfs(r,c-1)+1;
  32. res = res> temp ? res: temp;
  33. }
  34.  
  35. return ans[r][c]=res;
  36. }
  37.  
  38. int main()
  39. {
  40. memset(ans,-1,sizeof(ans));
  41. scanf("%d%d",&R,&C);
  42. F(i,R)
  43. F(j,C)
  44. scanf("%d",&a[i][j]);
  45.  
  46. int x=1;
  47. F(i,R)
  48. F(j,C)
  49. {
  50. int temp=dfs(i,j);
  51. x= x > temp? x: temp;
  52. }
  53.  
  54. printf("%d\n",x);
  55. }

POJ 1088 滑雪 DFS 记忆化搜索的更多相关文章

  1. POJ 1088 滑雪(记忆化搜索)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 92384   Accepted: 34948 Description ...

  2. POJ 1088 滑雪【记忆化搜索】

    题意:给出一个二维矩阵,要求从其中的一点出发,并且当前点的值总是比下一点的值大,求最长路径 记忆化搜索,首先将d数组初始化为0,该点能够到达的路径长度保存在d数组中,同时把因为路径是非负的,所以如果已 ...

  3. poj 1088 滑雪_记忆化搜索

    题意:略 直接用记忆化搜索就行了 #include<cstdio> #include<iostream> using namespace std; int n,m; int m ...

  4. POJ 1088 滑雪 【记忆化搜索经典】

    题目链接:http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:  ...

  5. OpenJ_Bailian - 1088 滑雪(记忆化搜索)

    题意:给定一个二维数组,一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小,输出可以滑行的最长区域的长度. 分析:对于每一个点,进行记忆化搜索.若某点可以向四周某几个点滑行,记忆化搜索求出 ...

  6. 不要62 hdu 2089 dfs记忆化搜索

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意: 给你两个数作为一个闭区间的端点,求出该区间中不包含数字4和62的数的个数 思路: 数位dp中 ...

  7. dfs+记忆化搜索,求任意两点之间的最长路径

    C.Coolest Ski Route 题意:n个点,m条边组成的有向图,求任意两点之间的最长路径 dfs记忆化搜索 #include<iostream> #include<stri ...

  8. POJ 1191 棋盘分割 【DFS记忆化搜索经典】

    题目传送门:http://poj.org/problem?id=1191 棋盘分割 Time Limit: 1000MS   Memory Limit: 10000K Total Submission ...

  9. POJ 2704 Pascal's Travels 【DFS记忆化搜索】

    题目传送门:http://poj.org/problem?id=2704 Pascal's Travels Time Limit: 1000MS   Memory Limit: 65536K Tota ...

随机推荐

  1. 程序中为什么会使用while(0)

    https://blog.csdn.net/u012062760/article/details/46446207 关于while(0)实际上是用来宏定义的,这样的宏定义可以避免调用的时候出错. 如下 ...

  2. 韦东山ARM裸机笔记(2)--vi编辑器

    VI编辑器(Visual Interface--可视化接口) 一.Linux下的一个文本编辑器,所具备的基本功能: 打开.新建.保存文件 光标移动 文本编辑 (多行间 | 多列间)复制.粘贴.删除 查 ...

  3. 一个简易版的Angular js 三层 示例

    var myApp = angular.module('produceline', []); myApp.factory('ajax', ["$http", "$q&qu ...

  4. Python day字符串所有使用

    字符串所有的操作name = "dio"names = "my\t name is {Name} and i am a {job}"print(name.cap ...

  5. dp之完全背包 hdu--2159一维数组做法

    #include <iostream>#include <stdio.h>#include <string.h>using namespace std;int ma ...

  6. 深入具体解释SQL中的Null

    NULL 在计算机和编程世界中表示的是未知,不确定.尽管中文翻译为 "空", 但此空(null)非彼空(empty). Null表示的是一种未知状态.未来状态,比方小明兜里有多少钱 ...

  7. 【MongoDB】mongodump and mongorestore of mogodb

    The another tool will be mentioned in this blog, namely mongodump and mongorestore. General speaking ...

  8. [Angular & Unit Testing] Testing a RouterOutlet component

    The way to test router componet needs a little bit setup, first we need to create a "router-stu ...

  9. IE兼容性开发的笔记

    当前项目组开发的产品对外承诺支持IE9和IE11,但在推广应用过程中发现存在相当比例的用户实际上还在使用IE8.而这相当比例中的用户还包含了大部分的公司领导.为了满足公司内部各阶层人士体验我们产品的诉 ...

  10. CSS demo:flaot &amp; clear float

    1,首先,我们布局主要的div块: 例如以下代码所看到的,我们在body里面写3几个基本div块,然后设置一些基本属性: 效果图: 2,增加基本浮动 如今我们想让红色div放到绿色div右边,我们在两 ...