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

//memset(visit, 0, sizeof(0)); //天呐天呐 谁告诉我为什么这行不行!!!!!!!!!!!!!!!!!1

Posted by vince4053040 at 2010-02-06 12:45:37 on Problem 2243
#include<iostream>
using namespace std;

int main()
{
	freopen("in.txt", "r", stdin);
	char a, c, b, d;
	int i;
	int begin_i, end_i, begin_j, end_j;         
	int Row[65];
	int Col[65];
	int row, col;
	int rear, front, temp, que[65];
	int visit[65][65];
	int move[8][2] = {{-2, -1}, {-2, 1}, {-1, -2}, {-1, 2}, {1, -2}, {1, 2}, {2, -1}, {2, 1}};
	while(cin >> a >> b >> c >> d) {     //输入方式有诸多疑问
		begin_i = a - 'a', begin_j = b - '1', end_i = c - 'a', end_j = d - '1'; 
		for(i = 0; i < 8; i ++)
			for(int j = 0; j < 8; j ++)
				visit[i][j] = 0;                   //非要这样写?memset不行???????
		//memset(visit, 0, sizeof(0));           //天呐天呐 谁告诉我为什么这行不行!!!!!!!!!!!!!!!!!1
		front = rear = 0;
		Row[0] = begin_i;
		Col[0] = begin_j;
		que[rear ++] = 0;
		visit[begin_i][begin_j] = 1;
		while(front < rear) {
			temp = front ++;
			if(Row[temp] == end_i && Col[temp] == end_j) 
				break;
			for(i = 0; i < 8; i ++) {
				row = Row[temp] + move[i][0];
				col = Col[temp] + move[i][1];
				if(row >= 0 && col >= 0 && row < 8 && col < 8 && visit[row][col] == 0) {         
					visit[row][col] = 1;
					Row[rear] = row;
					Col[rear] = col;
					que[rear ++] = que[temp] + 1;
					//cout << temp << endl;
				}
			}
		}
		cout << que[temp] << endl;
	}
	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