UVA-10285 Longest Run on a Snowboard
2015-12-08 23:22
986 查看
Brief description
略
Algorithm analyse
水题一个。
我在思考如何用递推的方式实现?最优子结构如何寻找?
似乎有想法了。让我先研究一下UVA-1629.再思考思考.
Code
略
Algorithm analyse
水题一个。
我在思考如何用递推的方式实现?最优子结构如何寻找?
似乎有想法了。让我先研究一下UVA-1629.再思考思考.
Code
#include <iostream> #include <map> #include <algorithm> #include <cstdio> #include <cstring> #include <cstdlib> #include <vector> #include <queue> #include <stack> #include <functional> #include <set> #include <cmath> using namespace std; #define pb push_back #define PB pop_back #define bk back() #define fs first #define se second #define sq(x) (x)*(x) #define eps (1e-10) #define INF 1e6 #define clr(x) memset((x),0,sizeof (x)) #define cp(a,b) memcpy((a),(b),sizeof (b)) typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> P; const int maxn=100+5; int Map[maxn][maxn]; int dp[maxn][maxn]; int m,n; int dfs(int i,int j) { int& ans=dp[i][j]; if(ans) return ans; int MAX=0; if(Map[i+1][j]<=Map[i][j]-1&&i+1<m) { ans=dfs(i+1,j)+1; MAX=max(MAX,ans); } if(Map[i][j+1]<=Map[i][j]-1&&j+1<n) { ans=dfs(i,j+1)+1; MAX=max(MAX,ans); } if(Map[i-1][j]<=Map[i][j]-1&&i-1>-1) { ans=dfs(i-1,j)+1; MAX=max(MAX,ans); } if(Map[i][j-1]<=Map[i][j]-1&&j-1>-1) { ans=dfs(i,j-1)+1; MAX=max(MAX,ans); } return ans=MAX; } int main() { int T; scanf("%d",&T); while(T--) { clr(Map); string name; cin>>name>>m>>n; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { scanf("%d",&Map[i][j]); } clr(dp); int Max=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { Max=max(Max,dfs(i,j)); } cout<<name<<": "<<Max+1<<endl; } return 0; }
相关文章推荐
- 小儿语
- python datetime模块
- 分享一些DICOM数据下载网站
- PAT1010(BUG)
- 架构探险 学习笔记
- pandas 模块学习
- 集算器协助报表工具实现跨行运算
- Azkaban Quick Start
- “Device eth0 does not seem to be present”解决办法
- 热爱生命
- 第三个Sprint冲刺第一天
- 怎么从docker中copy文件到 本机
- 对象复制
- 【转载mos文章】11.2RAC中public ip地址没有注册到监听器中
- 轻巧级记事本的开发
- 轻巧级记事本的开发
- 大神给你分析HTTPS和HTTP的区别
- EL取得action 属性的原理
- 轻巧级记事本的开发
- Hive数据迁移