poj-1088 & nyoj-10

来源:互联网 发布:mac sublime 跳转 编辑:程序博客网 时间:2024/05/18 02:39
#include<iostream>#include<cstdio>#include<fstream>using namespace std;#define maxn 108int x[4]={1,0,-1,0};int y[4]={0,-1,0,1};int r,c,m[maxn][maxn],cnt[maxn][maxn];int MAX(int a,int b){return a>b?a:b;}int dfs(int a,int b){int i,max=1;if(cnt[a][b])return cnt[a][b];for(i=0;i<4;++i){int xx=a+x[i];int yy=b+y[i];if(m[a][b]>m[xx][yy] && xx>=1 && xx<=r && yy>=1 && yy<=c)max=MAX(max,dfs(xx,yy)+1);}cnt[a][b]=max;return cnt[a][b];}int main(){int i,j,x,y;//freopen("d:\\test.txt","r",stdin);int min=0;scanf("%d%d",&r,&c);for(i=1;i<=r;++i)for(j=1;j<=c;++j)scanf("%d",&m[i][j]);for(i=1;i<=r;++i)for(j=1;j<=c;++j)min=MAX(min,dfs(i,j));printf("%d\n",min);return 0;}

  

#include<iostream>#include<cstdio>#include<fstream>#include<string.h>//这个头文件特别重要using namespace std;#define maxn 108int x[4]={1,0,-1,0};int y[4]={0,-1,0,1};int r,c,m[maxn][maxn],cnt[maxn][maxn];int MAX(int a,int b){return a>b?a:b;}int dfs(int a,int b){int i,max=1;if(cnt[a][b])return cnt[a][b];for(i=0;i<4;++i){int xx=a+x[i];int yy=b+y[i];if(m[a][b]>m[xx][yy] && xx>=1 && xx<=r && yy>=1 && yy<=c)max=MAX(max,dfs(xx,yy)+1);}cnt[a][b]=max;return cnt[a][b];}int main(){int i,j,x,y;//freopen("d:\\test.txt","r",stdin);int t;scanf("%d",&t);while(t--){memset(cnt,0,sizeof(cnt));int min=0;scanf("%d%d",&r,&c);for(i=1;i<=r;++i)for(j=1;j<=c;++j)scanf("%d",&m[i][j]);for(i=1;i<=r;++i)for(j=1;j<=c;++j)min=MAX(min,dfs(i,j));printf("%d\n",min);}return 0;}

  

原创粉丝点击