#luoguP12118. [NordicOI 2025] 点对处理 / Dodgeball Diplomacy

[NordicOI 2025] 点对处理 / Dodgeball Diplomacy

本题没有可用的提交语言。

题目背景

Python / Java(很)可能无法通过本题。不建议不使用 C/C++。

题目描述

这是一道交互题。我们利用交互来让你强制在线回答询问。

NN 个点,编号从 11NN,你需要解决如下 QQ 个询问:

  • a u v p\texttt{a u v p},在 uuvv 之间添加长度为 pp 的无向边。

  • r\texttt{r},删除当前图中最长的无向边。

  • d\texttt{d},把当前图中连通块两两配对(如果连通块数量为奇数,那就选择一个连通块和大小为 00 的连通块配对),记为 (Ai,Bi)(A_i,B_i)

    设有 kk 个连通块,令连通块 AA 的点数为 A|A|,最小化 1ikAiBi\displaystyle \sum_{1\le i\le k}||A_i|-|B_i||。只需要输出最小化后的这个值。

输入格式

第一行给定两个整数 N,QN,Q

接下来 QQ 行查询,每行格式即题目描述三者之一。

输出格式

对于每条类型为 d\texttt{d} 的查询,程序必须在处理后续查询之前立即输出答案。此外,你需要在每次输出答案后立即刷新输出缓冲区。

3 5
a 1 2 1
a 2 3 2
d
r
d

3
1

6 10
a 2 3 10
a 1 2 5
a 3 4 8
d
r
d
a 4 5 1
a 3 6 7
r
d

4
0
2

提示

【样例解释】

注意以下解释只按顺序解释类型为 d\texttt{d} 的查询。

  • 对于样例 11,第一次查询,连通块为 (1,2,3)(1,2,3),答案为 33,第二次查询,连通块为 (1,2)(1,2)(3)(3),答案为 11

  • 对于样例 22,在第一次查询,有一个大小为 44 的连通块和两个大小为 11 的连通块,总不公平分数为 44;在第二次查询中,有两个大小为 22 的连通块和两个大小为 11 的连通块,答案为 00;在第三次查询,有三个大小为 22 的联盟,答案为 22

【数据规模与约定】

对于所有数据,满足:

$1 \leq N \leq 100000,1 \leq Q \leq 500000,1 \leq p \leq 10^{9},1 \leq u \leq N,1 \leq v \leq N$。

对于类型 a\texttt{a} 的查询,uvu \neq v,添加无向边时,uuvv 之间不存在无向边,且所有 pp 均唯一。

详细子任务附加限制及分值如下表所示:

子任务编号 分值 附加限制
11 99 N10,Q20N \le 10,Q \le 20
22 1010 N2000,Q4000N \le 2000,Q\le 4000
33 66 类型 d\texttt{d} 的查询不超过 1010
44 1717 类型 a\texttt{a} 的查询,满足 u+1=vu+1=v
55 1414 满足随着边的建立,pp 递增
66 2626 满足随着边的建立,pp 递减
77 1818 无附加限制