这道题你们用剪枝的BFS吗?我用的找规律,谁能提供一个复杂一点的数据吗
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n , m , k;
int main()
{
int t , len , cas=0 , i , j ;
char ch ;
scanf("%d",&t);
while ( cas<t )
{
int x , y ,xx, yy , ans , a , b ;
cas++;
printf("Case #%d:\n",cas);
scanf("%d%d%d",&n,&m,&k);
scanf("%d%d",&x,&y);
scanf("%d%d",&xx,&yy);
a = abs(x-xx) ; b = abs(y-yy) ;
if ( (a==2 && b==1) || (a==1 && b==2) )
ans = 2 ;
else
if ( a==1 && b==1 && ( x == 1 || x == n ) && (y == 1 || y == m ) )
ans = 2 ;
else
if ( (a == 0 && b == 1 && ( y==1 || y == m)) || (a==1 && b ==0 &&(x ==1 ||x==n)) )
ans = 2 ;
else
{
if ( a < b ) { int g = a ; a = b ; b = g ; }
if ( a/3*2<=b )
{
ans = ( a + b ) /5 ;
if ( ( a+b)%5 ) ans ++ ;
}
else
{
ans = a / 3 ;
if ( a%3 ) ans ++ ;
}
}
if ( ans > k ) printf("OH,NO!\n");
else
printf("%d\n",ans);
}
return 0 ;
}