| ||||||||||
| 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 | |||||||||
1088我的答案怎么不对呢//总是wrong error,我自己测试的没错阿,是什么地方逻辑错误还是什么地方不符合规范呢?
#include<iostream>
using namespace std ;
int Fun(int *map,int *map2,int m,int n) ;
int Refun(int *map,int *map2,int m,int n,int i,int j) ;
int main()
{
int m,n ;
cin>>m>>n ;
if(m<1)
return 0 ;
if(n>100)
return 0 ;
int *map,*map2 ;
map=new int[m*n] ;
map2=new int [m*n] ;
int i ;
for(i=0;i<m*n;i++)
{
cin>>map[i] ;
if(map[i]<0 || map[i]>10000)
return 0 ;
}
for(i=0;i<m*n;i++)
{
map2[i]=-1 ;
}
int result=Fun(map,map2,m,n) ;
delete [] map ;
delete [] map2 ;
cout<<endl ;
cout<<result<<endl ;
return 0 ;
}
int Fun(int *map,int *map2,int m,int n)
{
bool flag=1 ;
int i ;
int j,k ;
while(flag)
{
flag=0 ;
for(i=0;i<m*n;i++)
{
if(map2[i]==-1)
{
j=i/n ;
k=i%n ;
map2[i]=Refun(map,map2,m,n,j,k) ;
flag=1 ;
}
}
}
int max=-9999 ;
for(i=0;i<m*n;i++)
{
if(map2[i]>max)
{
max=map2[i] ;
}
}
return max ;
}
int Refun(int *map,int *map2,int m,int n,int i,int j)
{
int t=map[i*n+j] ;
int p,q ;
int mapNum[4]={-1,-1,-1,-1} ;
if((p=i-1)>=0)
{
q=j ;
if(map[p*n+q]<t)
{
if(map2[p*n+q]>0)
mapNum[0]=map2[p*n+q] ;
else map2[p*n+q]=mapNum[0]=Refun(map,map2,m,n,p,q) ;
}
}
if((p=i+1)<m)
{
q=j ;
if(map[p*n+q]<t)
{
if(map2[p*n+p]>0)
mapNum[1]=map2[p*n+p] ;
else map2[p*n+q]=mapNum[1]=Refun(map,map2,m,n,p,q) ;
}
}
if((q=j-1)>=0)
{
p=i ;
if(map[p*n+q]<t)
{
if(map2[p*n+q]>0)
mapNum[2]=map2[p*n+q] ;
else map2[p*n+q]=mapNum[2]=Refun(map,map2,m,n,p,q) ;
}
}
if((q=j+1)<n)
{
p=i ;
if(map[p*n+q]<t)
{
if(map2[p*n+q]>0)
mapNum[3]=map2[p*n+p] ;
else map2[p*n+q]=mapNum[3]=Refun(map,map2,m,n,p,q) ;
}
}
int max=-999 ;
for(int temp=0;temp<4;temp++)
{
if(mapNum[temp]>max)
max=mapNum[temp] ;
}
if(max<0)
map2[i*n+j]=1 ;
else map2[i*n+j]=max+1 ;
return map2[i*n+j] ;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator