難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Golden Steiner Tree (Hard)

作成者 mackerel38

テスター yukimy32

難易度(作成者設定) Lv.8

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

この問題は、yukicoder No.3608 - Golden Steiner Tree の制約を一部強化した問題である。

問題文

φ=1+52\varphi = \dfrac{1+\sqrt{5}}{2} とする。

正整数 N,R,BN, R, B が与えられる。

頂点 1,2,…,N1, 2, \dots, N からなる無向グラフに以下の条件で辺を張る。

  • 11 以上 NN 以下のすべての整数 ii について以下の操作を行う。
    • 1≤⌊iφ⌋≤N1 \le \left\lfloor i \varphi \right\rfloor \le N ならば、頂点 ii と頂点 ⌊iφ⌋\left\lfloor i \varphi \right\rfloor の間に重み RR の赤色の辺を張る。
    • 1≤⌊iφ2⌋≤N1 \le \left\lfloor i \varphi^2 \right\rfloor \le N ならば、頂点 ii と頂点 ⌊iφ2⌋\left\lfloor i \varphi^2 \right\rfloor の間に重み BB の青色の辺を張る。

はじめ、グラフの頂点はすべて黒色に塗られている。

正整数 QQ と QQ 個のクエリが与えられる。 qq 番目のクエリは整数の組 (tq,xq)(t_q, x_q) として与えられ、その内容は以下の通りである。

  • tq=1t_q = 1 のとき、頂点 xqx_q が白色に塗られているなら黒色に、黒色に塗られているなら白色に塗る。
  • tq=2t_q = 2 のとき、赤色の辺の重みを xqx_q にする。
  • tq=3t_q = 3 のとき、青色の辺の重みを xqx_q にする。

クエリを処理するたびに、以下の問題の答えを求めよ。

辺を 00 個以上削除してすべての白色の頂点が連結にできるか判定し、できるならば残っている辺の重みの総和としてありうる最小値を求めよ。
連結にすることができないならば -1 を出力せよ。白色の頂点が 00 個の場合、答えは 0 になる。

制約

  • 入力はすべて整数である。
  • 1≤N≤1091 \le N \le 10^9
  • 1≤Q≤2×1051 \le Q \le 2 \times 10^5
  • 1≤R,B≤1091 \le R, B \le 10^9
  • 1≤tq≤3 (1≤q≤Q)1 \le t_q \le 3 ~ (1 \le q \le Q)
  • 1≤xq≤N (1≤q≤Q,tq=1)1 \le x_q \le N ~ (1 \le q \le Q, t_q = 1)
  • 1≤xq≤109 (1≤q≤Q,tq∈{2,3})1 \le x_q \le 10^9 ~ (1 \le q \le Q, t_q \in \{2, 3\})

入力

入力は以下の形式で標準入力から与えられる。

NN RR BB QQ t1t_1 x1x_1 t2t_2 x2x_2 ⋮\vdots tQt_Q xQx_Q

出力

QQ 行出力せよ。 qq 行目には qq 個目のクエリを処理した直後における問題の答えを出力せよ。

サンプル

サンプル 1

入力

8 3 5
8
1 4
1 6
1 7
2 10
3 1
1 4
1 6
1 7

出力

0
3
11
25
21
21
0
0

⌊4φ⌋=6\left\lfloor 4 \varphi \right\rfloor = 6 であるため、22 個目のクエリを処理した直後の問題の答えは 33 になる。