P1732 活蹦乱跳的香穗子
2018-06-17 22:18:24来源:未知 阅读 ()
题目描述
香穗子在田野上调蘑菇!她跳啊跳,发现自己很无聊,于是她想了一个有趣的事情,每个格子最多只能经过1次,且每个格子都有其价值
跳的规则是这样的,香穗子可以向上下左右四个方向跳到相邻的格子,并且她只能往价值更高(这里是严格的大于)的格子跳.
香穗子可以从任意的格子出发,在任意的格子结束,
那么她最多能跳几次?
输入输出格式
输入格式:
第一行n,m,表示田野的长和宽
接下来n行,每行m个数,表示该格的价值
输出格式:
一个数,表示最多跳得次数
输入输出样例
2 2 2 5 -1 3
2
说明
n,m<=100
答案保证小于Maxlongint
决定了,
以后能写记忆化搜索的写记忆化搜索
不能写记忆化搜索的也写记忆化搜索!
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 #include<algorithm> 7 #define lli long long int 8 using namespace std; 9 const int MAXN=101; 10 void read(lli &n) 11 { 12 char c='+';lli x=0;bool flag=0; 13 while(c<'0'||c>'9') 14 {c=getchar();if(c=='-')flag=1;} 15 while(c>='0'&&c<='9') 16 {x=x*10+(c-48);c=getchar();} 17 flag==1?n=-x:n=x; 18 } 19 lli n,m; 20 lli map[MAXN][MAXN]; 21 lli ans[MAXN][MAXN]; 22 lli xx[5]={-1,+1,0,0}; 23 lli yy[5]={0,0,-1,+1}; 24 lli M_S(lli x,lli y) 25 { 26 if(ans[x][y]) 27 return ans[x][y]; 28 for(lli i=0;i<4;i++) 29 { 30 lli wx=x+xx[i]; 31 lli wy=y+yy[i]; 32 if(map[wx][wy]>map[x][y]&&wx>=1&&wy>=1&&wx<=n&&wy<=m) 33 ans[x][y]=max(ans[x][y],M_S(wx,wy)+1); 34 } 35 return ans[x][y]; 36 } 37 int main() 38 { 39 read(n);read(m); 40 for(lli i=1;i<=n;i++) 41 for(lli j=1;j<=m;j++) 42 read(map[i][j]); 43 for(lli i=1;i<=n;i++) 44 for(lli j=1;j<=m;j++) 45 if(!ans[i][j]) 46 M_S(i,j); 47 lli out=-1; 48 for(lli i=1;i<=n;i++) 49 for(lli j=1;j<=m;j++) 50 out=max(out,ans[i][j]); 51 printf("%d",out); 52 return 0; 53 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:P1564 膜拜
下一篇:P1510 精卫填海
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash