| ||||||||||
| 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 | |||||||||
Re:高手帮忙看看,到底哪里错了?为什么样例都过了,题还没过In Reply To:高手帮忙看看,到底哪里错了?为什么样例都过了,题还没过 Posted by:1004091222 at 2011-03-14 20:56:22 > #include<iostream>
> #include<cstdio>
> #include<cstring>
> using namespace std;
>
> int p,q;
> int visit[30][30];
> int dy[8] = {-2, -2, -1, -1, 1, 1, 2, 2};
> int dx[8] = {-1, 1, -2, 2, -2, 2, -1, 1};
> char step[60];
>
> int dfs(int x,int y,int k)
> {
>
> if(k==q*p)
> {
> return 1;
> }
> for(int i=0;i<8;i++)
> {
> int x1=x+dx[i];
> int y1=y+dy[i];
> if(x1>=0&&x1<q&&y1>=0&&y1<p&&visit[y1][x1]==0)
> {
> visit[y1][x1]=1;
> step[(k<<1)]=x1+'A';
> step[(k<<1)+1]=y1+'1';
> if(dfs(x1,y1,k+1))
> {
>
> return 1;
> }
> visit[y1][x1]=0;
> }
> }
> return 0;
>
>
>
> }
>
> int main()
> {
> int t;
> scanf("%d",&t);
> int h=1;
> while(t--)
> {
> scanf("%d%d",&p,&q);
> memset(visit,0,sizeof(visit));
> memset(step,0,sizeof(step));
> step[0]='A';
> step[1]='1';
> visit[0][0]=1;
> if(dfs(0,0,1))
> {
> int b=strlen(step);
> step[b]='\0';
> printf("Scenario #%d:\n",h++);
> printf("%s\n\n",step);
> }
> else
> {
> printf("Scenario #%d:\n",h++);
> printf("impossible\n\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