Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

标程:)

Posted by drownever at 2007-05-15 14:52:37 on Problem 2243
#include<iostream>
#include<string>
using namespace std;
char s1[3],s2[3];    
int res1,res2;
int dir1[8]={-2,-1,1,2,2,1,-1,-2};
int dir2[8]={1,2,2,1,-1,-2,-2,-1};
struct node
{
       int x,y;
       int v;
};
bool having[9][9]={0};
struct node all[100];
int i=0,j=1;
void ouput(int a)
{
     printf("To get from %s to %s takes %d knight moves.\n",s1,s2,a);
}
bool bfs() 
{
    int a=all[i].x,b=all[i].y;
    //右上方1 
    int k;
    for(k=0;k<8;k++)
    {
                    if( a+dir1[k]>=1 && a+dir1[k]<=8  
                         && b+dir2[k]>=1 && b+dir2[k]<=8
                         && having[ a+dir1[k] ][ b+dir2[k] ]==false 
                      )
                    {
                         if( a+dir1[k]==res1 && b+dir2[k]==res2 ) 
                         {
                             ouput( all[i].v +1 );
                             return true;
                         }
                         struct node n;
                         n.x=a+dir1[k];
                         n.y=b+dir2[k];
                         n.v=all[i].v+1;
                         all[j++]=n;
                         having[n.x][n.y]=true;
                    }
    }
    i++;
    return false;
}

int main()
{
    while( scanf("%s%s",s1,s2)!=EOF )
    {
           i=0; j=1;
           memset(all,0,sizeof(all));
           memset(having,0,sizeof(having));
           struct node n;
           n.x=s1[0]-'a'+1;
           n.y=s1[1]-'1'+1;
           n.v=0;
           all[0]=n;
           res1=s2[0]-'a'+1;
           res2=s2[1]-'1'+1;
           if( strcmp(s1,s2)==0)
           {
               ouput(0);
               continue;
           }
           while(bfs()==false);
    }
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator