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

不知道哪里错了,哪位大牛帮你忙啊!找了一个下午都没有找出来,一直说是Wrong Answer

Posted by sbjw1234 at 2010-07-22 17:03:42 on Problem 2488
#include<stdio.h>
#include<string.h>
int r,c;
typedef struct 
{
	char num_r;
	int num_c;
}point;
point num[27];
int dx[8] = {-1, 1, -2, 2, -2, 2, -1, 1};
int dy[8] = {-2, -2, -1, -1, 1, 1, 2, 2};

char str[27][27];
int dfs(int t,int x,int y);
int main()
{
	int i,n,t;
	freopen("2488.txt","r",stdin);
	scanf("%d",&t);
	n=t;
	while(n--)
	{
		scanf("%d%d",&r,&c);
		memset(str,'*',sizeof(str));
		memset(num,-1,sizeof(num));
		str[0][0]='-';
		num[0].num_r='A';
		num[0].num_c=1;
		int flag=dfs(0,0,0);
		printf("Scenario #%d:\n",t-n);
		if(flag==1)
		{
			i=0;
			while(num[i].num_c!=-1)
			{
				printf("%c%d",num[i].num_r,num[i].num_c);
				i++;
			}
			printf("\n");
		}
		else
			printf("impossible\n");
		printf("\n");
			
	}
	return 0;
}

int dfs(int t,int x,int y)
{
	int flag;
	while(t!=r*c-1)
	{
		flag=1;
		for(int i=0;i<8;i++)
			if(x+dx[i] >= 0 && x+dx[i] < r&&
				y+dy[i] >= 0 && y+dy[i] < c&&
				 str[x+dx[i]][y+dy[i]]=='*'
				)
			{
				flag=0;
				str[x+dx[i]][y+dy[i]]='-';
				num[++t].num_r='A'+y+dy[i];
				num[t].num_c=x+dx[i]+1;
				x+=dx[i];y+=dy[i];
				break;
			}
		if(flag==1)
			return 0;
	}
	return 1;
}

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