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 onlystruggle at 2008-08-07 15:26:54 on Problem 2488
请帮忙一下啊,谢谢了.
#include <iostream>

using namespace std;

#define N 26

struct state { int x; int y; };
struct statemove { int x; int y; };

bool visited[N][N];
state path[N];
const statemove move[8] = { {-2, -1}, {-2, +1}, {-1, -2}, {-1, +2},
					  {+1, -2}, {+1, +2}, {+2, -1}, {+2, +1} };
int p, q;

bool dfs(int x, int y, int d);

int main()
{
	int n;
	scanf("%d", &n);
	for(int i=1; i<=n; ++i)
	{
		scanf("%d%d", &p, &q);
		printf("Scenario #%d:\n", i);
		for(int j=0; j<p; ++j)
		for(int k=0; k<q; ++k)
		visited[j][k] = false;
		visited[0][0] = true;
		path[0].x = 0;
		path[0].y = 0;
		if(!dfs(0, 0, 0)) printf("impossible\n\n");
		else
		{
			for(int m=0; m<p*q; ++m)
			printf("%c%d", path[m].y+'A', path[m].x+1);
			printf("\n\n");
		}
	}
}

bool dfs(int x, int y, int d)
{
	if(d==p*q-1)
	{
		return true;
	}
	else
	{
		int xx, yy;
		for(int i=0; i<8; ++i)
		{
			xx = x+move[i].x;
			yy = y+move[i].y;
			if(xx>=0 && xx<p && yy>=0 && yy<q
				 && visited[xx][yy]==false)
			{
				visited[xx][yy] = true;
				path[d+1].x = xx;
				path[d+1].y = yy;
				if(dfs(xx, yy, d+1)) return true;
				else visited[xx][yy] = false;
			}
		}
		return false;
	}
}

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