2019 중산 기념관 중학교 여름 캠프 -Day4 [JZOJ]

시작

(정렬 : 난이도)

박자는 무엇입니까 :

프로그램이 자신의 긍정적 인 솔루션보다 편리한 방법이 아니다는 것을 확인하기 위해 작성 후을합니다.

구현 과정 :

같은 질문은, 폭력적인 프로그램에 의존하고 출력하여 확인하고 문제 해결을 비교하여 자신의 프로그램을 작성하기 위해 일부 대형 데이터 폭력 프로그램을 실행합니다.

2019년 8월 4일 [ NOIP 인기 시뮬레이션 게임 세트] C의

세 번째 질문 [ 2266. 고대 사람들의 문제 ]

 

 

제목 설명

      문은 정말 큰 홀이, 열었습니다. 불행하게도 강당 양피지의 중앙 부분과 잘 슬레이트 연필뿐만 아니라,뿐만 아니라 주위에 몇 해골 아무것도. 이 왕의 유산인가? 그것은 작은 FF는 생각하지 않는다 발견, 그는 조심스럽게 양피지에 기록 할 수있는 고대의 사람들이 슬레이트 연필로 응답 할 것이다이 질문을 들어 올릴만큼 사람들이 목표로, 문제를 해결하지 못하고 내부에 기록 된 양피지의 내용을 읽고, 왕실 보물 실에 도달합니다. 작은 FF는 슬레이트 연필을 집어 때, 단지 문이 갑자기 옥석을 종료 열었다. 작은 FF하고 여기에 그의 이전 모험가에 몇 해골 것을 실현, 내가 두려워이 질문을 깰 수있는 여기에서 죽어되지 않습니다. 작은 FF는 점점 더 겁을 성장하고, 당신의 생명을 구하기 위해, 연락을 서둘러, 당신은 그에게 심지어 50 대 50 싶습니다 ...... 당신이 다시 그를 도와 줘야 것으로 보인다. 양피지 문제는 다음과 같다 :
      공지의 X는, Y는 정수이며, 다음의 두 가지 조건을 만족
      1. X, Y-ε [1..k]이고, X, Y는 Z ε-K,
      2 (X ^ 2 - XY - Y ^ 2) ^ 2 = 1
      , Y 및 상기 조건을 충족시키는 X의 세트를 찾을하면 정수 (k)를 제공한다는 X ^ 2 + y는 ^ 2 (A)의 최대 값.
      작은 FF는 답변을 얻을 때, 양피지에 답변을 작성하는 슬레이트 연필로, 우리는 왕의 유산에 도달 할 수 있습니다.
 

기입

정수 K

수출

출력 파일에 한 행, 두 정수;
두 정수 X 및 Y를 나타낸다. X는 Y 사이의 공간에 의해 분리된다.

 
 

샘플 입력

1,995

샘플 출력

1597 987
 

데이터 범위 제한

30 %의 데이터 : (2) <= K <= 10 ^ 4
데이터의 100 % : 2 <= K <= 10 ^ 18.

 
 

신속한

Z는 정수가 정수의 집합 내부 수학적 상징 xyk

 

가장 간단한 루오 밸리의 제목을 원래의 제목의 어려움이있다 얻기

방법 : 테이블을 재생! ! !

마지막 표는 발견 킥 것입니다하지 그 권리 증서 물 피보나치 수열이? ? ? (나는 시험 방에 생각하지 않았다)

증명 :

(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 }
피보나치

종료

 

추천

출처www.cnblogs.com/XYYXP/p/2019-8-4_ZSJNZX_OJ_TEAM-C_PUJI_DAY4.html