CF1278B-A 및 B- (간단한 수학적)

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); 
                    휴식 ; 
                } 
            } 
        }
    } 
 
}

추천

출처www.cnblogs.com/shoulinniao/p/12075382.html