[Algorithm] Baekjoon

https://www.acmicpc.net/problem/7562

7562호: 나이트 무브먼트

기사가 체스판 위에 놓여 있습니다. 기사가 한 번에 이동할 수 있는 사각형은 아래 그림과 같습니다. 기사가 이동하려는 사각형이 지정됩니다. 기사는 몇 번의 이동만으로 이 광장으로 이동할 수 있습니다.

www.acmicpc.net

하나
2
4
5
6
7
8일
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
구조 마디
{
내부 예;
내부 엑스;
내부 계산하기;
};
부울 방문(301)(301);
내부 너에게(8일)(2) = { {하나,2}, {2,하나},{2,하나}, {하나,2},{하나,2},{2,하나},{2,하나},{하나,2} };
내부 FSO(내부 싸이, 내부 섹스, 내부내부 디엑스, 내부 크기)
{
memset(방문, 잘못된, 크기(방문));
대기줄<마디> 큐;
q.push({sy,sx,0 });
방문 (sy) (sx) = 진실;
~하는 동안 (!q.빈())
{
내부 커리 =앞쪽().와이;
내부 curX =앞쪽().엑스;
내부 현재 카운트 =앞쪽().계산하기;
();
만약에 (curY == 다이 && curX == dx)
{
돌려 주다 현재 카운트;
}
~을 위한 (내부= 0; 나 < 8일; ++나)
{
내부 다음 Y = 커리 + 당신(i)(0);
내부 다음X = curX + 당신(i)(하나);
만약에 (다음 Y < 0 || 다음 Y >= 크기) 계속해;
만약에 (다음 X < 0 || 다음X >= 크기) 계속해;
만약에 (방문(다음Y)(다음X)) 계속해;
방문 (다음 Y) (다음 X) = 진실;
q.push({ nextY, nextX,currentNumber + 하나 });
}
}
}
내부 주로()
{
ios::sync_with_stdio(잘못된);
.묶다(0);
쿠우트.묶다(0);
내부 t, n, sy, sx, dy, dx;
벡터<내부> 결과;
>> 티;
~을 위한 (내부= 0; 나 < 티; ++나)
{
>> N;
>> 싸이 >> sx >> 다이 >> dx;
결과.푸시백(BFS(sy, sx, dy, dx, n));
}
~을 위한 (자동차& 임시:결과)
{
쿠우트 << 온도 << ;
}
}
CS

별도의 카드신고 없이 체크만 방문하면 해결되는 BFS 문제입니다.