| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:求助:算法没问题啊 怎么会超时啊 贴出代码In Reply To:求助:算法没问题啊 怎么会超时啊 贴出代码 Posted by:solopointer at 2010-08-08 20:57:42 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define N 101
int map[N][N];
int used[N][N];
int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int r,c;
int dfs(int x,int y)
{
int maxs=0,h,i;
int tx,ty;
if(used[x][y]!=-1)
return used[x][y];
h=map[x][y];
for(i=0;i<4;i++)
{
tx=x+dir[i][0];
ty=y+dir[i][1];
if(tx>=1 && tx<=r && ty>=1 && ty<=c && h>map[tx][ty])
{
if(maxs<dfs(tx,ty)+1)
maxs=dfs(tx,ty)+1;
}
}
return used[x][y]=maxs;
}
int main()
{
int maxs=0;
int i,j;
cin>>r>>c;
for(i=1;i<=r;i++)
for(j=1;j<=c;j++)
{
cin>>map[i][j];
used[i][j]=-1;
}
for(i=1;i<=r;i++)
for(j=1;j<=c;j++)
if(maxs<dfs(i,j))
maxs=dfs(i,j);
cout<<maxs+1<<endl;
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator