| ||||||||||
| 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 | |||||||||
自己已解决,只要在Max函数中的max1后加上=1,即max1=1;就行。In Reply To:为什么不对,各位大神帮忙看一下 Posted by:31201153 at 2013-05-26 10:40:14 > #include<stdio.h>
> int a[120][120],r,c;
> int dp[120][120];
> int dx[4]={0,-1,1,0},dy[4]={-1,0,0,1};
> int OK(int i,int j)
> {
> if(i>=1&&i<=r&&j>=1&&j<=c)
> return 1;
> return 0;
> }
> int Max(int i,int j)
> {
> int k,max1=1,max=1;
> if(dp[i][j]>0)
> return dp[i][j];
> for(k=0;k<4;k++){
> if(OK(i+dx[k],j+dy[k])){
> if(a[i][j]>a[i+dx[k]][j+dy[k]])
> max1=Max(i+dx[k],j+dy[k])+1;
> if(max<max1)
> max=max1;
> }
> }
> dp[i][j]=max;
> return max;
> }
> int main()
> {
> int i,j,max,max1;
> while(scanf("%d%d",&r,&c)!=EOF)
> { max=max1=0;
> for(i=1;i<=r;i++)
> for(j=1;j<=c;j++)
> { scanf("%d",&a[i][j]);
> dp[i][j]=0;
> }
> for(i=1;i<=r;i++)
> { for(j=1;j<=c;j++)
> { max1=Max(i,j);
> if(max<max1)
> max=max1;
> }
> }
> printf("%d\n",max);
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator