uva 10285 The Tower of Babylon(记忆化搜索)
来源:互联网 发布:2016小米抢购软件 编辑:程序博客网 时间:2024/06/07 14:57
Problem C
Longest Run on a Snowboard
Input: standard input
Output: standard output
Time Limit: 5 seconds
Memory Limit: 32 MB
Michael likes snowboarding. That's not very surprising, since snowboarding is really great. The bad thing is that in order to gain speed, the area must slide downwards. Another disadvantage is that when you've reached the bottom of the hill you have to walk up again or wait for the ski-lift.
Michael would like to know how long the longest run in an area is. That area is given by a grid of numbers, defining the heights at those points. Look at this example:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
One can slide down from one point to a connected other one if and only if the height decreases. One point is connected to another if it's at left, at right, above or below it. In the sample map, a possible slide would be 24-17-16-1 (start at 24, end at 1). Of course if you would go 25-24-23-...-3-2-1, it would be a much longer run. In fact, it's the longest possible.
Input
The first line contains the number of test cases N. Each test case starts with a line containing the name (it's a single string), the number of rows R and the number of columns C. After that follow R lines with C numbers each, defining the heights. R and C won't be bigger than 100, N not bigger than 15 and the heights are always in the range from 0 to 100.
For each test case, print a line containing the name of the area, a colon, a space and the length of the longest run one can slide down in that area.
Sample Input
2
Feldberg 10 5
56 14 51 58 88
26 94 24 39 41
24 16 8 51 51
76 72 77 43 10
38 50 59 84 81
5 23 37 71 77
96 10 93 53 82
94 15 96 69 9
74 0 62 38 96
37 54 55 82 38
Spiral 5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
Sample Output
Feldberg: 7
Spiral: 25
(Math Lovers’ Contest, Problem Setter: Stefan Pochmann)
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<string>#include<algorithm>#include<cstdlib>#include<set>#include<queue>#include<stack>#include<vector>#include<map>#define N 100010#define Mod 10000007#define lson l,mid,idx<<1#define rson mid+1,r,idx<<1|1#define lc idx<<1#define rc idx<<1|1const double EPS = 1e-11;const double PI = acos ( -1.0 );const double E = 2.718281828;typedef long long ll;const int INF = 1000010;using namespace std;int mp[110][110],dp[110][110];int n,m;char s[140];int xx[4]= {-1,0,1,0};int yy[4]= {0,1,0,-1};bool vis[110][110];int dfs(int x,int y){ if(dp[x][y]!=1) return dp[x][y]; int ans=1; for(int i=0; i<4; i++) { int nx=xx[i]+x; int ny=yy[i]+y; if(nx<0||nx>=n||ny<0||ny>=m||mp[nx][ny]>=mp[x][y]) continue; dp[x][y]=max(dp[x][y],dfs(nx,ny)+1); } return dp[x][y];}int main(){ int t; while(~scanf("%d",&t)) { while(t--) { scanf("%s",s); scanf("%d%d",&n,&m); for(int i=0; i<n; i++) for(int j=0; j<m; j++) scanf("%d",&mp[i][j]); int ans=1; memset(vis,0,sizeof vis); for(int i=0;i<=n+1;i++) fill(dp[i],dp[i]+m+1,1); for(int i=0; i<n; i++) for(int j=0; j<m; j++) ans=max(ans,dfs(i,j)); printf("%s: %d\n",s,ans); } } return 0;}
- uva 10285 The Tower of Babylon(记忆化搜索)
- uva 10285 The Tower of Babylon(dp,记忆化搜索)
- uva 437 The Tower of Babylon(dp,记忆化搜索)
- UVa 437.The Tower of Babylon【记忆化搜索+dp】【4月25】
- POJ-2241 uva 437 The Tower of Babylon 记忆化搜索 DAG最长路
- UVA 437 The Tower of Babylon DP+记忆化
- uva437 - The Tower of Babylon(动规,记忆化搜索)
- Uva The Tower of Babylon
- The Tower of Babylon UVA
- The Tower of Babylon UVA
- The Tower of Babylon UVA
- The Tower of Babylon UVA
- uva 437 The Tower of Babylon(DAG的DP)
- uva 437 The Tower of Babylon(DAG最长路)
- uva 437 - The Tower of Babylon(DP)
- UVA 437 - The Tower of Babylon (DAG)
- POJ 2241 The Tower of Babylon(UVA 437)
- Uva 437-The Tower of Babylon(DP)
- android开发中常用屏幕单位转换
- (转载)linux命令之五十三telnet命令
- Ubuntu下Android开发:手机不能识别
- Makefile选项CFLAGS,LDFLAGS,LIBS
- 2015年中国互联网发展展望(月光博客)
- uva 10285 The Tower of Babylon(记忆化搜索)
- oracle日常检查脚本
- iOS开发的一些奇巧淫技2
- Metro UI CSS 学习笔记之 基础组件
- Lua 生成随机数
- 最简单的问题与算法(高次方数的尾数)
- centos6.5 安装navicat11
- Android ActionBar应用实战,高仿微信主界面的设计
- node js安装