問題一覧 > 通常問題

No.2849 Birthday Donuts

レベル : / 実行時間制限 : 1ケース 6.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 14
作問者 : 👑 AngrySadEight / テスター : ecottea torisasami4
1 ProblemId : 11025 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-07-03 21:59:07

問題文

x>yx > y を満たす正整数 x,yx, y に対し,中心が等しい半径 xx の円 A と半径 yy の円 B の 22 つの円からなる平面図形を,「(x,y)(x, y)-ドーナツ」と呼びます.

例として,(3,2)(3, 2)-ドーナツを図示すると,以下のようになります.

Bob は,誕生日のプレゼントとして,LiRL \leq i \leq R かつ 1j<i1 \leq j < i を満たす整数組 (i,j)(i, j) のそれぞれについて,(i,j)(i, j)-ドーナツを 11 個ずつ貰いました.

正の倍率の拡大・縮小によって互いに一致させられるドーナツを同一の種類のドーナツとみなし,互いに一致させられないドーナツを別の種類のドーナツとみなすとき,Bob が貰ったドーナツの種類数を求めてください.

TT 個のテストケースが与えられるので,それぞれについて答えてください.

なお,各テストケースにおいて,L,RL, R暗号化された状態でそれぞれ整数 α,β\alpha, \beta として与えられます.各テストケースでは,以下のようにして L,RL, R を復号してから解答してください.

  • ans0=0,ansi=\mathrm{ans}_0 = 0, \mathrm{ans}_i=ii 番目のテストケースの答え)とする.このとき,ii 番目のテストケースに対して,L=αansi1,R=βansi1L = \alpha \oplus \mathrm{ans}_{i - 1}, R = \beta \oplus \mathrm{ans}_{i - 1} のように復号できる.

ただし,xyx \oplus yxxyy のビット単位 XOR を表します.

ビット単位 XOR とは

22 個の非負整数 xxyy のビット単位 XOR xyx \oplus y は,以下のように定義されます.

  • xyx \oplus y22 進表記した際の 2k2^k の位の値は,x,yx, y それぞれを 22 進表記した際の 2k2^k の位の一方のみが 11 であれば 11,そうでなければ 00 であるとする.
  • 例えば,35=63 \oplus 5 = 6 となる.(22 進表記すると 011101=110011 \oplus 101 = 110

制約

  • 入力はすべて整数である.
  • 1T1051 \leq T \leq 10^5
  • 0α,β10180 \leq \alpha, \beta \leq 10^{18}
  • 2LR2×1052 \leq L \leq R \leq 2 \times 10^5

入力

入力は以下の形式で標準入力から与えられる.ここで,casei\mathrm{case}_iii 番目のテストケースを表す.

TT
case1\mathrm{case}_1
case2\mathrm{case}_2
\vdots
caseT\mathrm{case}_T

各テストケースは以下の形式で与えられる.

α\alpha β\beta

出力

TT 行出力せよ.ii 行目には,ii 番目のテストケースについての答えを出力せよ.

サンプル

サンプル1
入力
5
2 3
1 7
15 15
11 200009
12158598942 12158743847
出力
3
5
9
12158598917
10159235125

11 つ目のテストケースについて,ans0=0\mathrm{ans}_0 = 0 であるため,L=2,R=3L = 2, R = 3 と復号できます.よって,Bob は (2,1)(2, 1)-ドーナツ,(3,1)(3,1)-ドーナツ,(3,2)(3, 2)-ドーナツの 33 個のドーナツを貰いました.これらはすべて異なる種類のドーナツなので,答えは 33 種類です.

22 つ目のテストケースについて,ans1=3\mathrm{ans}_1 = 3 であるため,L=2,R=4L = 2, R = 4 と復号できます.Bob は (2,1)(2, 1)-ドーナツ,(3,1)(3, 1)-ドーナツ,(3,2)(3, 2)-ドーナツ,(4,1)(4, 1)-ドーナツ,(4,2)(4, 2)-ドーナツ,(4,3)(4, 3)-ドーナツの 66 個のドーナツを貰いました.(2,1)(2, 1)-ドーナツは拡大すると (4,2)(4, 2)-ドーナツと一致させられ,拡大・縮小により互いに一致させられるドーナツの組はこれのみであるため,ドーナツの種類は 55 種類となります.

33 つ目のテストケースについて,ans2=5\mathrm{ans}_2 = 5 であるため,L=10,R=10L = 10, R = 10 と復号できます.

44 つ目のテストケースについて,ans3=9\mathrm{ans}_3 = 9 であるため,L=2,R=200000L = 2, R = 200000 と復号できます.

55 つ目のテストケースについて,ans4=12158598917\mathrm{ans}_4 = 12158598917 であるため,L=27,R=182818L = 27, R = 182818 と復号できます.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。