2015ACM / ICPC 아시아 심양 역 -HDU5512 - 탑 - GCD 경주를 재현하는 방법

n 개의  탑은 표시된 Niushou 산 및 Yuntai 산 사이 홍콩 JUE시에 세우고 서 있었다  1  에  해당 . 그러나, 그 중 두 개 (표지  및  B1 B 형 ≤에서 n은 시간의 시험을 견뎌).

두 승려, Yuwgna 및 Iaka 다시 영광이 큰 만들하기로 결정. 그들은 사찰을 구축하는 회전을 가지고 Yuwgna 먼저합니다. 각각 차례 번 새로운 탑이 표시된 재구성 할  I를 ( { , B } N D 1 i가 N )     직립 표시된 서 두 탑이 존재하는 경우  , J  및  K가  각각되도록  I = J + K를  또는  = J - 케이 . 각 탑은 두 번 다시 할 수 없습니다.

이것은 그들을위한 게임이다. 새로운 탑을 재건 할 수없는 스님은 게임을 잃게됩니다.
 
입력
첫 번째 라인은 정수 포함  t ( 1 t 500 )   테스트 케이스의 수이다.
테스트 케이스를 들면, 첫 번째 라인은 양의 정수를 제공하는  N ( 2 N 20000 )   와 두 개의 서로 다른 정수   및  B를 .
 
산출
각 테스트 케이스 출력 승자 (`Yuwgna "또는`Iaka"). 둘 다 최선의 결정을 할 때마다 만들 것입니다.
 
샘플 입력
(16)
2 1 2
3 1 3
(67) (1) (2)
100 (1) (2)
8 6 8
9 8 6
106 8
11 6 8
12 6 8
13 6 8
14 6 8
15 6 8
16 6 8
1,314 6~8
1 1994 (13)
1,994 7~12
 
샘플 출력
사례 # 1 : 일
사례 # 2 : Yuwgna
사례 # 3 : Yuwgna
사례 # 4 : 일
사례 # 5 : 일
사례 # 6 : 일
사례 # 7 : Yuwgna
사례 # 8 : Yuwgna
사례 # 9 : 일
사례 # 10 : 일
사례 # 11 : Yuwgna
사례 # 12 : Yuwgna
사례 # 13 : 일
사례 # 14 : Yuwgna
사례 # 15 : 일
사례 # 16 : 일
 
오늘의 주 대회 문제는 영어를 이해하지 않았기 때문에, 처음 쓸 이유가 없다,하지만이 게임 타이틀, 내가 좋은 아니에요 게임, 그래서 때문에 할 일이 아무 문제도 없다.
 

질문의 의미 :

  T 주어진 샘플 그룹이 각각의 그룹은 N 부여 제가, J, I 및 J는 두 개의 타워는 두 바퀴 Iaka 및 Yuwgna 건물 탑이 필요한 높이를 나타내고, Yuwgna 먼저 만 필수 열 높이 만든 그것은 J + i가 열 및 IJ에서 이루어진 것으로, 미리 만든 탑을 반복하고, 타워 높이 <= N, 만들어진 마지막 열을 취득하지 않도록 선택된다.

 

아이디어 :

완료되는 모든 열 후에는, 탑 다른 높아야 (I, J) <알고리즘> 결정 아래의 #include 작은 제수 미네소타 __gcd 수있다 칼럼 i와 j의 높은 최소 열을 만들었다 미네소타 배수.

원래의 기지국과 두 (N의 범위 미네소타) 다중 기록 minn에 합을 뺀 양을 사용.

Yuwgna가 처음 만들어진 이후 마지막으로, 합계 % 2 == 0, 다음의 지시에 승리하고, 그 반대의 Yuwgna 승리 Iaka.

 

1 #INCLUDE <STDIO.H>
 2 #INCLUDE <알고리즘>
 3  사용  스페이스 성병;
4  
5  INT ) (주
 6  {
 7      INT의 TT;
8      는 scanf ( " %의 D " , TT);
9      INT의 t = 1 ;
10      동안 (tt-- )
 11      {
 12          INT의 N, I, J;
13          는 scanf ( " % D % D % D " , 및 N, I, J);
14          INT 미네소타 =__gcd (I, J);
15          INT의 합 = - 2 ;
16           ( INT I = 미네소타; 나는 ++] i가 = N < )
 17          {
 18              의 경우 는 (i % 미네소타 == 0 )
 19                  ++ 합 ;
(20)          }
 (21)          의 경우 (합 % 2 == 0 )
 (22)              의 printf ( " 케이스 # % d에 : Iaka \ n을 " , t ++ );
23          다른 
24              의 printf ( " 케이스 # % d에 : Yuwgna \ n을 " , t ++ );
25      }
 26      반환  0 ;
27 }
코드보기

 

추천

출처www.cnblogs.com/OFSHK/p/11482881.html