E D R , A S I H C RSS

AKnight's Journey

Difference between r1.2 and the current

@@ -1,94 +1,39 @@
Describe AKnight'sJourney here
 
=== Source Code ===
{{{
#include <stdio.h>
#include <memory.h>
 
int A[30][30];
int B[700][2];
int P, Q;
short Flag;
 
void R(int n, int p, int q)
{
if(Flag){
return;
}else if(1>p || p>P || 1>q || q>Q || A[p][q]){
return;
}else if(n==P*Q){
B[n][0]=p;
B[n][1]=q;
 
Flag=1;
return;
}else{
B[n][0]=p;
B[n][1]=q;
A[p][q]=1;
 
R(n+1, p-2, q-1);
R(n+1, p-2, q+1);
R(n+1, p-1, q-2);
R(n+1, p-1, q+2);
R(n+1, p+1, q-2);
R(n+1, p+1, q+2);
R(n+1, p+2, q-1);
R(n+1, p+2, q+1);
== A Knight's Journey ==
||Time Limit||1000MS||Memory Limit||65536K||
||Total Submissions||15350||Accepted||5124||

if(Flag){
return;
}
A[p][q]=0;
B[n][0]=0;
B[n][1]=0;
}
}
=== 배경 ===
기사는 또 다시 같은 검은색과 흰색 사각형을 보는 것이 지루해 '''전 세계'''를 여행하기로 결심했다. 기사의 세계는 8*8 보다 각은 면적을 가진 체스판이다. 기사는 이동할 때 두 칸 이동하고 직각으로 한 칸 이동한다.

void solve()
{
int p, q;
=== 입력 ===
입력은 첫 번째 라인에 양의 정수 N과 함께 시작됩니다. 다음 라인은 N 개의 테스트 케이스가 포함되어 있습니다. 각 테스트 케이스는 두 양의 정수 P와 Q로 이루어져 있는데, 1<;= P * Q <= 26 로 제한이 되어있습니다. P*Q 체스판에서 P는 1, 2, ..., p , Q는 A, B, C, ..., Q를 나타냅니다.

scanf("%d %d", &P, &Q);
=== 출력 ===
시나리오 시작 번호는 1입니다. 모든 시나리오에 대한 출력은 "Scenario # I:"으로 시작합니다. 다음 기사 이동과 체스판의 모든 사각형을 방문하는 순서는 '''사전 편찬(집필) 상의 순서'''를 따라야 합니다. 방문 가능한 경로는 여러 가지가 있을 수 있지만, ABC, 123 의 순서를 따지면 결과는 하나로 정해져 있습니다. 최종 경로는 한 줄에 제공해야합니다. 전부 방문할 수 있는 경로가 존재하지 않으면, 당신이 한 줄에 출력 불가능합니다.

for(p=1; p<=P; p++){
for(q=1; q<=Q; q++){
if(!Flag){
R(1, p, q);
}else{
return;
} 
} 
}
}
=== Sample Input ===
{{{
3
1 1
2 3
4 3
}}}

int main()
{
int n;
int i, j;
=== Sample Output ===
{{{
Scenario #1:
A1

scanf("%d", &n);
for(i=1; i<=n; i++){
Flag=0;
memset(A, 0, sizeof(A));
printf("Scenario #%d\n", i);
solve();
if(Flag){
for(j=1; j<=P*Q; j++){
printf("%c%c", B[j][1]+'A'-1, B[j][0]+'0');
}
}else{
printf("impossible");
}
printf("\n\n");
}
Scenario #2:
impossible

return 0;
}
Scenario #3:
A1B3C1A2B4C2A3B1C3A4B2C4
}}}
=== 풀이 ===
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
|| [정진경] || . || - || [AKnight's Journey/정진경] ||
|| [강소현] || 사용언어 || 개발시간 || [AKnight's Journey/강소현] ||

/// WA C
 
=== ... ===
 
* 음... 어디가 틀렸을까요 -[정진경]
----
[http://poj.org/problem?id=2488 Problem A Knight's journey], [문제분류], [ACM_ICPC/2011년스터디]



A Knight's Journey

Time Limit1000MSMemory Limit65536K
Total Submissions15350Accepted5124

배경

기사는 또 다시 같은 검은색과 흰색 사각형을 보는 것이 지루해 전 세계를 여행하기로 결심했다. 기사의 세계는 8*8 보다 각은 면적을 가진 체스판이다. 기사는 이동할 때 두 칸 이동하고 직각으로 한 칸 이동한다.

입력

입력은 첫 번째 라인에 양의 정수 N과 함께 시작됩니다. 다음 라인은 N 개의 테스트 케이스가 포함되어 있습니다. 각 테스트 케이스는 두 양의 정수 P와 Q로 이루어져 있는데, 1<= P * Q <= 26 로 제한이 되어있습니다. P*Q 체스판에서 P는 1, 2, ..., p , Q는 A, B, C, ..., Q를 나타냅니다.

출력

시나리오 시작 번호는 1입니다. 모든 시나리오에 대한 출력은 "Scenario # I:"으로 시작합니다. 다음 기사 이동과 체스판의 모든 사각형을 방문하는 순서는 사전 편찬(집필) 상의 순서를 따라야 합니다. 방문 가능한 경로는 여러 가지가 있을 수 있지만, ABC, 123 의 순서를 따지면 결과는 하나로 정해져 있습니다. 최종 경로는 한 줄에 제공해야합니다. 전부 방문할 수 있는 경로가 존재하지 않으면, 당신이 한 줄에 출력 불가능합니다.

Sample Input

3
1 1
2 3
4 3

Sample Output

Scenario #1:
A1

Scenario #2:
impossible

Scenario #3:
A1B3C1A2B4C2A3B1C3A4B2C4
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:21
Processing time 0.0350 sec