Codeforces Round #701 (Div. 2) 問題文和訳
- A. Add and Divide / Прибавляй и дели (500点)
- B. Replace and Keep Sorted / Замена и возрастание (1000点)
- C. Floor and Mod / Деление и остаток (1500点)
- D. Multiples and Power Differences / Делители и степенные разности (1750点)
- E. Move and Swap / Передвижения и замены (2500点)
- F. Copy or Prefix Sum / Копия или префиксная сумма (3000点)
A. Add and Divide / Прибавляй и дели (500点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
以下の2種類の操作を行うことができます。
- ( を で割った時の商の整数部分に を置き換える)
- ( を だけ大きくする)
にするために必要な操作回数の最小値を求めてください。
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
各テストケースについての記述の唯一の行には2つの整数 が与えられる。
出力
各テストケースについて単一の整数を出力せよ、その整数は とするために必要な操作回数の最小値である。
入出力例
6 9 2 1337 1 1 1 50000000 4 991026972 997 1234 5678
4 9 2 12 3 1
注記
最初のテストケースにおいて、最適解の1一つは次のようなものです。
- を で割る。操作後 となる。
- を で割る。操作後 となる。
- を大きくする。操作後 となる。
- を で割る。操作後 となる。
B. Replace and Keep Sorted / Замена и возрастание (1000点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
- どちらの配列も狭義単調増加である
- 長さが同じである
- それらの全ての要素は から (両端を含む)の正整数である
- ちょうど1つの位置の要素が異なる
整数、狭義単調増加列 と 個のクエリが与えられます。各クエリについて、2つの整数 が与えられます。配列 に -類似するような配列 が何個あるかを求めてください。
入力
1行目には3つの整数 が与えられる、それらは配列 の長さ 、クエリの数 、数 である。
2行目には個の整数 が与えられる。この配列は狭義単調増加である。即ち、。
続く 列には2つの整数 が与えられる。
出力
行出力せよ。 行目には 番目のクエリに対する答えを出力せよ。
入出力例
4 2 5 1 2 4 5 2 3 3 4
4 3
6 5 10 2 4 6 7 8 9 1 4 1 2 3 5 1 6 5 5
8 9 7 6 9
注記
最初の例において
1個目のクエリについて に -類似する配列は つ存在します: 。
2個目のクエリについて に -類似する配列は つ存在します: 。
C. Floor and Mod / Деление и остаток (1500点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
2整数 が与えられます。 と を満たす特別な組 の個数を求めてください。
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
各テストケースについての記述の唯一の行には2つの整数 が与えられる。
出力
各テストケースに対する答えをそれぞれ単一行に出力せよ。
入出力例
9 3 4 2 100 4 3 50 3 12 4 69 420 12345 6789 123456 789 12345678 9
1 0 2 3 5 141 53384 160909 36
注記
1つ目のテストケースにおいて、特別な組はただ1組存在します: 。
2つ目のテストケースにおいて、特別な組は存在しません。
3つ目のテストケースにおいて、特別な組は2組存在します: と 。
D. Multiples and Power Differences / Делители и степенные разности (1750点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
正整数からなる行列 を構成してください。 は と同じサイズであり、次の条件を満たしていなければなりません。
- は の倍数である
- 内の任意の隣接する要素のペア(同じ辺を共有する2つの要素)の差の絶対値はある整数 について である( は全てのペアで同じである必要はなく、各ペアで独自のものでよい)
答えが常に存在することは証明できます。
入力
1行目には2つの整数 が与えられる。
続く 行にはそれぞれ 個の整数が与えられる。 行目の 番目の整数は である。
出力
個の整数を含む 行を出力せよ。 行目の 番目の整数は である。
入出力例
2 2 1 2 2 3
1 2 2 3
2 3 16 16 16 16 16 16
16 32 48 32 48 64
2 2 3 11 12 8
327 583 408 664
注記
1つ目のテストケースでは、任意の隣接する要素ペアの差の絶対値が であるため、行列 を行列 として用いることができます。
3つ目のテストケースにについて
- は の倍数、 は の倍数、 は の倍数、 は の倍数
E. Move and Swap / Передвижения и замены (2500点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
木とはサイクルをもたない連結無効グラフです。2つの頂点間の距離はそれらを結ぶ単純パス上の辺の数です。根でない次数 の頂点は全て葉です。頂点 と が辺で結ばれていて、根から までの距離が根から までの距離よりも大きい時、 は の子と呼ばれます。
初期状態において、頂点 に赤いコインと青いコインが置かれています。 を赤いコインがある頂点、 を青いコインがある頂点とします。 回の移動を施さなければなりません。1回の移動は次の3ステップからなります。
- の任意の子に赤いコインを移動させる
- となるような任意の頂点 に青いコインを移動させる。ここで とは と の間の単純パスの長さを表す。 と が辺で結ばれてなくてもよいことに注意せよ
- 2枚のコインを任意で入れ替えることができる(このステップは省略可)
と はいつでも等しくなる可能性があり、根には数字が書かれていないことに注意してください。
移動を施すたび 点を得ます。 回移動を施したあとに得られる最大点数は何点でしょうか?
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
各テストケースの1行目には単一の整数 が与えられる、 は木の頂点数である。
各テストケースの2行目には 個の整数 が与えられる、 番目の数は頂点 と の間に辺があることを表す。これらの辺が木を形成することは保証されている。
各テストケースの3行目には 個の整数 が与えられる、 は頂点に書かれた数字である。
全てのテストケースでの の和が を超えないことは保証されている。
出力
各テストケースについて単一の整数を出力せよ、その整数は 回移動を施した後に得られる最大点数である。
入出力例
4 14 1 1 1 2 3 4 4 5 5 6 7 8 8 2 3 7 7 6 9 5 9 7 3 6 6 5 6 1 2 2 3 4 32 78 69 5 41 15 1 15 1 10 4 9 11 2 4 1 8 6 10 11 62 13 12 43 39 65 42 86 25 38 19 19 43 62 15 11 2 7 6 9 8 10 1 1 1 5 3 15 2 50 19 30 35 9 45 13 24 8 44 16 26 10 40
14 45 163 123
注記
1番目のテストケースでは最適解は以下のものです。
- 移動 : 、入れ替えなし
- 移動 : 、入れ替えあり(入れ替え後は)
- 移動 : 、入れ替えなし
合計点数は となります。(図は問題文のページ参照)
2番目のテストケースでは最適解は以下のものです。
- 移動 : 、入れ替えなし
- 移動 : 、入れ替えなし
- 移動 : 、入れ替えなし
合計点数は となります。
F. Copy or Prefix Sum / Копия или префиксная сумма (3000点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
それぞれの において以下の条件の内少なくとも1つを満たすとき整数列 はハイブリッドであるといいます。
ハイブリッドな配列 の個数を求めてください。答えは非常に大きくなることがあるため、答えをmodulo *1 で出力してください。
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
各テストケースの1行目には単一の整数 が与えられる。
各テストケースの2行目には 個の整数 が与えられる。
全てのテストケースでの の和が を超えないことは保証されている。
出力
各テストケースについて単一の整数を出力せよ、その整数はハイブリッドな配列 の個数のmodulo である。
入出力例
4 3 1 -1 1 4 1 2 3 4 10 2 -1 1 -2 2 3 -5 0 2 -1 4 0 0 0 1
3 8 223 1
注記
1番目のテストケースにおけるハイブリッドな配列は です。
2番目のテストケースにおけるハイブリッドな配列は です。
4番目のテストケースにおけるハイブリッドな配列は です。
*1: であった余り