시작
(정렬 : 난이도)
박자는 무엇입니까 :
프로그램이 자신의 긍정적 인 솔루션보다 편리한 방법이 아니다는 것을 확인하기 위해 작성 후을합니다.
구현 과정 :
같은 질문은, 폭력적인 프로그램에 의존하고 출력하여 확인하고 문제 해결을 비교하여 자신의 프로그램을 작성하기 위해 일부 대형 데이터 폭력 프로그램을 실행합니다.
2019년 8월 4일 [ NOIP 인기 시뮬레이션 게임 세트] C의 기
세 번째 질문 [ 2266. 고대 사람들의 문제 ]
2266. 고대 사람들의 문제
(파일 IO) : 입력 : puzzle.in 출력을 : puzzle.out시간 제한 : 1000 개 MS 공간 제한 : 60,000킬로바이트 특정 제한고토 ProblemSet
가장 간단한 루오 밸리의 제목을 원래의 제목의 어려움이있다 얻기
방법 : 테이블을 재생! ! !
마지막 표는 발견 킥 것입니다하지 그 권리 증서 물 피보나치 수열이? ? ? (나는 시험 방에 생각하지 않았다)
증명 :
(X 2 -xy Y- 2 ) 2 = 1
일본어 방정식 : (Y 2 + XY X- 2 ) 2 . = 1
((+ X에서의 Y) 2 -xy-2 × 2 ) 2 = 1
((+ X에서의 Y) 2 -xy-X (2) -x 2 ) 2 = 1
((X + Y) (2) -x (X + Y) -x 2 ) 2 = 1
비교 (X 2 -xy Y- 2 ) 2 = 1 ((X + Y). 2 -X- (X + Y)이 -X- 2 ) 2 = 1, 어렵지 않게 찾을 X :. Y = X + Y : X
피보나치 수를 수행하는 것이 아닌가?
:( 폭력은 코드 검색을 코드 (TLE30 점) + 피보나치 코드의 법을 찾을 수 첨부 (AC100 점))
1 #INCLUDE <cstdio> 2 #INCLUDE <iostream> 3 #INCLUDE <cmath> 4 #INCLUDE <알고리즘> 5 #DEFINE RR 레지스터 6 #DEFINE 줄게 긴 긴 7 이용한 스페이스 성병; (8) LL의 K; 9 INT 의 main () 10 { 11 // freopen을 ( "puzzle.in", "R", 표준 입력); 12 // freopen을 ( "puzzle.out", "w", 표준 출력); 13 는 scanf ( " %의 LLD " , K); 14 대 (RR LL I = K; I>; 난 - ) 15 대 (RR의 LL을 J = K, J> = 1 ; j-- ) 16 { 17 일 경우 (저는 j 개의 *의 j 개의 ==를 + * 1 개 + 2 * j 개의 *의 J + 난 * ) J를 18 { 19 의 printf ( " %의 LLD의 %의 LLD " , I, J); 20 반환 0 ; 21 } 22 경우 (난 J *의 j 개의 == + * - 1 개 + 2 * j 개의 *의 J를 + 난 * J)를 23 { 24 에서 printf ( " %의 LLD의 %의 LLD ", I, J); 25 반환 0 ; 26 } 27 } 28 }
1 #INCLUDE <cstdio> 2 긴 길이 A, B, C, K; 3 INT ) (주 4 { 5 freopen을 ( " puzzle.in " , " R " , 표준 입력); 6 개 freopen을 ( " puzzle.out " , " w " , 표준 출력); 도 7 는 scanf ( " %의 LLD " , K); 8 A = B = 1 ; 9 일 동안 (a <= K) 10 { 11 C = a 및 12 A = A + B; (13) B의 = C; 14 } 15 의 printf ( " %의 LLD의 %의 LLD " , B, A- B); 16 }
종료