https://vjudge.net/problem/CodeForces-1278B
質問が意図される:数2〜Bに、動作させる方法がある:第i操作請求任意にプラスまたはマイナスの番号i、数は任意に1ずつインクリメント又はデクリメントすることができる第一の動作、第2動作必要に応じて、前記数2プラスまたはマイナス2缶。少なくともいくつかの操作の後にaとbが等しくなるようにQ。
アイデア:
この質問は、ちょうど半分の過去が考え抜か確認することですが、難易度は、理論的には、2つの数の違い手書きのリストCHAそれを単に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; パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ スキャナスキャン = 新しいスキャナ(System.in)。 INT T = scan.nextInt()。 INT []合計= 新しい int型 [50000 ]; 以下のために(INT iが= 1; I <50000; I ++ ) 和[I] =和[I-1] + I。 一方、(T!= 0 ){ トン - ; INT A = scan.nextInt()。 INT B = scan.nextInt()。 int型茶= 0 ; もし(> B) CHA = A- B。 他の 茶 = B- 。 用(INT I = 0; I <=和[i]は、I ++ ) { もし、((和[I] -cha)%2 == 0 &&(和[I] -cha)> = 0 ){ のSystem.out .println(I)。 休憩; } } } } }