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:Re:代码升级,我同学这样写的AC了,为什么我的还是超时? Posted by:kanxue2002 at 2013-04-02 19:33:56 #include <iostream> using namespace std; int map[105][105]; int len[105][105]; int dir[4][2]={{1,0},{0,-1},{-1,0},{0,1}}; int m,n; int find(int x,int y){ if(len[x][y]>0) return len[x][y]; int tx,ty; for(int k=0;k<4;++k){ tx=x+dir[k][0]; ty=y+dir[k][1]; if(tx>=1&&ty>=1&&tx<=m&&ty<=n){ if(map[x][y]>map[tx][ty]){ if(len[x][y]<find(tx,ty)) len[x][y]=find(tx,ty); } } } return len[x][y]=len[x][y]+1; } int main() { int i,j; int max; while(cin>>m>>n){ max=-1; for(i=1;i<=m;++i) for(j=1;j<=n;++j){ cin>>map[i][j]; len[i][j]=0; } for(i=1;i<=m;++i) for(j=1;j<=n;++j){ find(i,j); if(max<len[i][j]) max=len[i][j]; } cout<<max<<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