| ||||||||||
| 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 | |||||||||
AC,贴代码~不算快16MS#include <stdio.h>
#include <memory.h>
int visit[26][26],locatex[626],step[8][2]={-1,-2,1,-2,-2,-1,2,-1,-2,1,2,1,-1,2,1,2};
char locatey[626];
int p,q,cas;
void put()
{
int i,j;
for(i=0;i<p*q;i++)
printf("%c%d",locatey[i],locatex[i]+1);
printf("\n");
}
int search(int deep,int r,int x)
{
int i,sx,sy;
if(deep==p*q-1) {locatex[deep]=r;locatey[deep]=x+'A';return 1;}
for(i=0;i<8;i++)
{
sx=r+step[i][0];sy=x+step[i][1];
if(sx>=0&&sx<p&&sy>=0&&sy<q&&visit[sx][sy])
{
visit[sx][sy]=0;locatex[deep]=r;locatey[deep]=x+'A';
if(search(deep+1,sx,sy)) return 1;
visit[sx][sy]=1;locatex[deep]=-1;locatey[deep]='0';
}
}
return 0;
}
int main()
{
int i;
scanf("%d",&cas);
for(i=1;i<=cas;i++)
{
scanf("%d %d",&p,&q);
memset(visit,1,sizeof(visit));
visit[0][0]=0;
printf("Scenario #%d:\n",i);
if(search(0,0,0)) put();
else if(p==1 && q==1) printf("A1\n");
else printf("impossible\n");
if(i!=cas) printf("\n");
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator