题目链接:

  https://vijos.org/p/1011

题目大意

  给一张N*M的地图(N,M<=500),可从任一点开始沿上下左右走,只能走比当前低的地方。问最长能走多少格。

题目思路:

  【动态规划】

  这题就是滑雪,动态规划。

  将高度排序后从低往高算,当前高度所在的格子上下左右比当前高度低就可以用来更新答案。

  1. //
  2. //by coolxxx
  3. //
  4. #include<iostream>
  5. #include<algorithm>
  6. #include<string>
  7. #include<iomanip>
  8. #include<memory.h>
  9. #include<time.h>
  10. #include<stdio.h>
  11. #include<stdlib.h>
  12. #include<string.h>
  13. #include<stdbool.h>
  14. #include<math.h>
  15. #define min(a,b) ((a)<(b)?(a):(b))
  16. #define max(a,b) ((a)>(b)?(a):(b))
  17. #define abs(a) ((a)>0?(a):(-(a)))
  18. #define lowbit(a) (a&(-a))
  19. #define sqr(a) (a)*(a)
  20. #define swap(a,b) (a)^=(b),(b)^=(a),(a)^=(b)
  21. #define eps 1e-8
  22. #define J 10000
  23. #define MAX 0x7f7f7f7f
  24. #define PI 3.1415926535897
  25. #define N 504
  26. #define M 500004
  27. using namespace std;
  28. int n,m,lll,ans,cas;
  29. struct xxx
  30. {
  31. int map,x,y;
  32. }a[N*N];
  33. int mm[N][N],d[N][N];
  34. int xx,yy,nowx,nowy;
  35. int dx[]={-,,,};
  36. int dy[]={,,-,};
  37. bool cmp(xxx aa,xxx bb)
  38. {
  39. return aa.map<bb.map;
  40. }
  41. int main()
  42. {
  43. #ifndef ONLINE_JUDGE
  44. // freopen("1.txt","r",stdin);
  45. // freopen("2.txt","w",stdout);
  46. #endif
  47. int i,j,k;
  48. // while(~scanf("%s%d",s,&n))
  49. while(~scanf("%d",&n) && n)
  50. {
  51. scanf("%d",&m);
  52. for(i=;i<=n;i++)
  53. {
  54. for(j=;j<=m;j++)
  55. {
  56. scanf("%d",&a[i*m-m+j].map);
  57. mm[i][j]=a[i*m-m+j].map;
  58. a[i*m+j-m].x=i;
  59. a[i*m-m+j].y=j;
  60. }
  61. }
  62. sort(a+,a++n*m,cmp);
  63. for(i=;i<=n*m;i++)
  64. {
  65. nowx=a[i].x;
  66. nowy=a[i].y;
  67. for(j=;j<;j++)
  68. {
  69. xx=nowx+dx[j];
  70. yy=nowy+dy[j];
  71. if(xx> && xx<=n && yy> && yy<=m)
  72. {
  73. if(mm[xx][yy]<mm[nowx][nowy])
  74. d[nowx][nowy]=max(d[nowx][nowy],d[xx][yy]+);
  75. }
  76. }
  77. ans=max(d[nowx][nowy],ans);
  78. }
  79. printf("%d\n",ans+);
  80. }
  81. return ;
  82. }
  83.  
  84. /*
  85. //
  86.  
  87. //
  88. */

【动态规划】Vijos P1011 清帝之惑之顺治的更多相关文章

  1. Vijos 1011 清帝之惑之顺治 记忆录式的动态规划(记忆化搜索)

    背景 顺治帝福临,是清朝入关后的第一位皇帝.他是皇太极的第九子,生于崇德三年(1638)崇德八年八月二ten+six日在沈阳即位,改元顺治,在位18年.卒于顺治十八年(1661),终24岁. 顺治即位 ...

  2. vijos 1011 清帝之惑之顺治

    背景 顺治帝福临,是清朝入关后的第一位皇帝.他是皇太极的第九子,生于崇德三年(1638)崇德八年八月二ten+six日在沈阳即位,改元顺治,在位18年.卒于顺治十八年(1661),终24岁. 顺治即位 ...

  3. vijos P1009清帝之惑之康熙

    </pre>背景康熙是中国历史乃至世界历史中最伟大的帝王之一,清除螯拜,撤除三藩,统一台湾,平定准葛尔叛乱:与此同时,出众的他也被世界各国遣清使臣所折服.康熙是历史上少有的全人,不仅文武兼 ...

  4. 【枚举】Vijos P1012 清帝之惑之雍正

    题目链接: https://vijos.org/p/1012 题目大意: 给n个坐标(n<=100 000),求直线距离最短是多少.数据较大用long long 或 double 题目思路: [ ...

  5. 【高精度】Vijos P1010 清帝之惑之乾隆

    题目链接: https://vijos.org/p/1010 题目大意: 多组数据,求R的n次幂(R为不超过9999.9的小数 n<=200)R保证占6位 不输出前导0和后缀0,整数就只输出整数 ...

  6. 【扩展欧几里德】Vijos P1009 清帝之惑之康熙

    题目链接: https://vijos.org/p/1009 题目大意: 两个人,一个在坐标x,每天走m,一个在坐标y,每天走n,坐标长L,问几天后碰面. 题目思路: [扩展欧几里德] 根据同余方程的 ...

  7. Vijos 1012 清帝之惑之雍正 平面最近点对(分治)

    背景 雍正帝胤祯,生于康熙十七年(1678)是康熙的第四子.康熙61年,45岁的胤祯继承帝位,在位13年,死于圆明园.庙号世宗. 胤祯是在康乾盛世前期--康熙末年社会出现停滞的形式下登上历史舞台的.复 ...

  8. Vijos 1010 清帝之惑之乾隆

    背景 乾隆,雍正的第四子,在位60年,退位后又当了三年太上皇,终年89岁. 乾隆即位之初,实行宽猛互济的政策,务实足国,重视农桑,停止捐纳,平定叛乱等一系列活动中,充分体现了他的文治武功,乾隆帝向慕风 ...

  9. Vijos 1040 高精度乘法

    描述 高精度乘法 输入:两行,每行表示一个非负整数(不超过10000位) 输出:两数的乘积. 样例1 样例输入1 99 101 样例输出1 9999 题解 这道题和之前的Vijos 1010 清帝之惑 ...

随机推荐

  1. Codeforces 570D - Tree Requests【树形转线性,前缀和】

    http://codeforces.com/contest/570/problem/D 给一棵有根树(50w个点)(指定根是1号节点),每个点上有一个小写字母,然后有最多50w个询问,每个询问给出x和 ...

  2. 关于黑名单IP的设置

    最近在做一个项目的时候,需要做一个自动的黑名单设置,也就是将一天内重复出错的超过一定次数的手机号,和IP给加入黑名单里面,下次请求的时候先判断是否在黑名单里. 这个是获取IP地址的方法 private ...

  3. sql知识点的积累和使用过的例子

    越来越发现自己的sql方面的知识的欠缺,所以只能放低姿态一点一点的学了 一 游标和charIndex的使用. 游标我一直没用过,以前只是在同事们写的存储过程里见过,但是一直没看明白(可是我就是比较笨吧 ...

  4. try{}catch(){}//根据异常信息使用不同的方法要怎么实现

    try{ }catch(Exception e){ if(e.getMessage().contains("123456798")) //使用e.getMessage().cont ...

  5. thread跟Runnable实现多线程

    //两种实现方式的区别和联系: //在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处: //避免点继承的局限,一个类可以继承 ...

  6. Erlang - Download and Install for Linux

    1. 下载 Erlang [huey@huey-K42JE erlang]$ wget http://www.erlang.org/download/otp_src_R16B03.tar.gz 2. ...

  7. 内网映射到公网工具 --- ngrok

    ngrok可以将内网映射到公网上,这样就可以在公网上访问你的网络服务. 该工具通常在进行app开发和微信开发时比较有用,这样就可避免在公网服务器上单独部署项目,通过映射,直接连接本地服务即可进行开发. ...

  8. Java 6 Thread States and Life Cycle.

    Ref: Java 6 Thread States and Life Cycle This is an example of UML protocol state machine diagram sh ...

  9. iOS 去除导航栏下的黑线

    Swift: navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) na ...

  10. 输出内容(document.write)

    document.write() 直接在页面中输出内容 第一种 直接输出 document.write("I Love Javascript !") //输出内容为:I Love ...