题目链接:

  https://vijos.org/p/1011

题目大意

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

题目思路:

  【动态规划】

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

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

 //
//by coolxxx
//
#include<iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<memory.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<math.h>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) (a)*(a)
#define swap(a,b) (a)^=(b),(b)^=(a),(a)^=(b)
#define eps 1e-8
#define J 10000
#define MAX 0x7f7f7f7f
#define PI 3.1415926535897
#define N 504
#define M 500004
using namespace std;
int n,m,lll,ans,cas;
struct xxx
{
int map,x,y;
}a[N*N];
int mm[N][N],d[N][N];
int xx,yy,nowx,nowy;
int dx[]={-,,,};
int dy[]={,,-,};
bool cmp(xxx aa,xxx bb)
{
return aa.map<bb.map;
}
int main()
{
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
int i,j,k;
// while(~scanf("%s%d",s,&n))
while(~scanf("%d",&n) && n)
{
scanf("%d",&m);
for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
scanf("%d",&a[i*m-m+j].map);
mm[i][j]=a[i*m-m+j].map;
a[i*m+j-m].x=i;
a[i*m-m+j].y=j;
}
}
sort(a+,a++n*m,cmp);
for(i=;i<=n*m;i++)
{
nowx=a[i].x;
nowy=a[i].y;
for(j=;j<;j++)
{
xx=nowx+dx[j];
yy=nowy+dy[j];
if(xx> && xx<=n && yy> && yy<=m)
{
if(mm[xx][yy]<mm[nowx][nowy])
d[nowx][nowy]=max(d[nowx][nowy],d[xx][yy]+);
}
}
ans=max(d[nowx][nowy],ans);
}
printf("%d\n",ans+);
}
return ;
} /*
// //
*/

【动态规划】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. Struts.properties(转)

    原文地址:http://blog.csdn.net/wfcaven/article/details/5937567 Struts2提供了很多可配置的属性,通过这些属性的设置,可以改变框架的行为,从而满 ...

  2. post get

    /// <summary> /// Get方法 /// </summary> /// <param name="serverUrl">url地址 ...

  3. Oracle11g数据库导入到oracle10g的解决方法

    我想有很多人在工作和学习中遇到这样的一个问题,Oracle数据库服务器版本和本机版本不一致问题,你的本机要是比服务器的版本要高的话还好,如果你本机是10g服务器是11g的话,从11g导出来的数据库是导 ...

  4. .Net framework.

    Figure 1 - .Net Framework The Common Language Runtime (CLR) is the mechanism through which .NET code ...

  5. sid超过8个字符处理步骤

    服务端配置如下: [oracle@p3 admin]$ cat listener.ora # listener.ora Network Configuration File: /home/oracle ...

  6. iOS UICollectionview的详细介绍

    转载自:http://jinqianchina.github.io/2015/08/16/UICollectionview%E7%9A%84%E4%BD%BF%E7%94%A8%E8%AF%A6%E8 ...

  7. hdoj 2049 错排

    代码: #include <stdio.h> int main(){ int n,a,b,i,j; __int64 s[22],h[22]; s[1]=0; s[2]=1; s[3]=2; ...

  8. SGU 137.Funny String

    题目描述 一个序列S1 S2 S3... Sn 如果满足 新序列 S1-1 S2 S3 ...Sn+1能够通过旋转的操作(不是翻转)来得到旧的序列,那么这个序列就叫做Funny序列.例如 1 2 1 ...

  9. free 堡垒机

    环境: centos6.5 mini安装 iptables selinux已经关闭 jumpserver: 192.168.1.209 testserver: 192.168.1.210 一. 部署l ...

  10. mysql数据类型——浮点和定点型

    mysql数据类型 字节 含义 float(m,d)           4字节  单精度浮点型,8位精度,m是十进制数字的总个数,d是小数点后面的数字个数 double(m,d)        8字 ...