10285 - Longest Run on a Snowboard(DP)
来源:互联网 发布:linux sem trywait 编辑:程序博客网 时间:2024/05/16 09:10
比较简单的DP,用记忆化搜索比较简单,递推。。。应该不好写吧 。
很容易发现,对于同一个位置,它的最长路是一定的, 不会变的,因为路是递减的,所以该题很适合用记忆化搜索 。 由此我们也可以发现DP和搜索的联系 。
代码如下:
#include<bits/stdc++.h>using namespace std;int T,r,c,a[105][105],d[105][105];int dx[] = {0,1,0,-1};int dy[] = {1,0,-1,0};char name[1000];int dp(int i,int j) { int& ans = d[i][j]; if(ans >= 0) return ans; ans = 1; for(int k=0;k<4;k++) { int u = i+dx[k]; int v = j+dy[k]; if(u<1||u>r||v<1||v>c) continue; if(a[u][v]<a[i][j]) ans = max(ans,dp(u,v)+1); } return ans;}int main() { scanf("%d",&T); while(T--) { scanf("%s%d%d",name,&r,&c); memset(d,-1,sizeof(d)); for(int i=1;i<=r;i++) for(int j=1;j<=c;j++) scanf("%d",&a[i][j]); int ans = 0; for(int i=1;i<=r;i++) for(int j=1;j<=c;j++) ans = max(ans,dp(i,j)); printf("%s: %d\n",name,ans); } return 0;}
1 0
- 10285 - Longest Run on a Snowboard(DP)
- UVa 10285:Longest Run on a Snowboard(DP)
- UVA - 10285 Longest Run on a Snowboard (线性DP)
- ACM DP Longest Run on a Snowboard
- uva 10285 Longest Run on a Snowboard (DP)
- UVa 10285 Longest Run on a Snowboard(DP)
- uva--10285Longest Run on a Snowboard+dp
- UVa 10285 Longest Run on a Snowboard [DP]
- [DP 训练] Longest Run on a Snowboard, UVa 10285
- uva 10285 Longest Run on a Snowboard
- UVA 10285 Longest Run on a Snowboard
- UVA 10285 - Longest Run on a Snowboard
- 10285 - Longest Run on a Snowboard
- UVa 10285 - Longest Run on a Snowboard
- uva 10285 - Longest Run on a Snowboard
- UVa 10285 - Longest Run on a Snowboard
- 10285 - Longest Run on a Snowboard
- UVa 10285 - Longest Run on a Snowboard
- Case of Fake Numbers
- UIView动画(过渡效果)的学习笔记
- 解决冲突(避免冲突)
- PowerPoint2007界面元素推荐
- [LeetCode][Java] Edit Distance
- 10285 - Longest Run on a Snowboard(DP)
- UNIX高级编程之简易版shell
- iOS9编程GOGOGO:XCode7新变化
- Unique Paths
- BZOJ 2818 Gcd 线性欧拉
- 1005. Spell It Right (20)
- UVA - 11995 I Can Guess the Data Structure!
- hdu 3074 Multiply game(线段树)
- [献给想深入学习Linux开发的网友] Linux 应用程序开发到内核开发的简明指南。