https://vjudge.net/problem/CodeForces-1278B
질문 의도되어 다수 개의와 B를 운영하는 방법이있다 : I 번째 동작 특징 임의로 더하거나 뺀 번호 나, 다수의 선택적으로 1 씩 증가 또는 감소 될 수있는 제 1 동작, 제 2 동작 선택적으로 상기 수의 숫자 2 플러스 또는 마이너스 2. Q는 적어도 몇몇 동작 후에 A 및 B는 동일 등이 있음.
아이디어 :
이 질문은 절반 과거 밖으로 생각을 참조하는 것입니다,하지만 어려움은, 이론적으로, 두 숫자 사이의 차이 필기 목록 차를 단지 B를해야한다
0 = 0
1 = 1
2 = 1 + 3-2
3 = 1 + 2
4 = 2 + 3-1
5 = 1 + 2 + 3 + 4-5
6 = 1 + 2 + 3
7 = 1 + 2 + 3 + 5-4
...
추측 : 한 감소 수를 절단해야하는 경우
접두사 초기화 배열 합 [I] 및 프리픽스를 초과하지 않는다 (10) (9). ] 만약 (합계 [I] -cha) % 2 == 0 최소 번호 I를 얻을 수있다. 결과는 정말 AC입니다. . . 이 간단한 수학 문제에 대한 기록.
수입 java.util.Arrays; 수입 java.util.HashMap에; 수입 되는 java.util.LinkedList; 수입 java.util.Scanner; 공용 클래스 주요 { 공공 정적 무효 메인 (문자열 []에 args) { 스캐너 스캔 = 새로운 스캐너 (System.in); INT t = scan.nextInt (); INT는 [] 합계 = 새로운 INT [50000 ]; 위한 ( INT ; I <50000 I ++ 1 = 난 ) 합계 [I] = 합계 [I-1] + I; 동안 (t! = 0 ) { t - ; INT A = scan.nextInt (); INT B = scan.nextInt (); INT 차 = 0 ; 경우 (a> b) 차 = A - B; 다른 차 = B- a 및 위한 ( INT ; I <= 합 [I]; I ++ 난 = 0 ) { 경우 (SUM ([I] -cha) % 2 == 0 && (합계 [I] -cha)> = 0 ) { System.out을을 .println (I); 휴식 ; } } } } }