#S2026F4. [CSP-S 2026 模拟一] 时序网络(timeline)

    ID: 3034 传统题 文件IO:timeline 6000ms 512MiB 尝试: 3 已通过: 1 难度: 5 上传者: 标签>其它技巧线段树分治CSP-S2026全真模拟离线动态连通性可撤销并查集

[CSP-S 2026 模拟一] 时序网络(timeline)

题目描述

有 nn 个服务器,初始时服务器之间没有连接。

接下来按顺序发生 qq 个操作。操作编号从 11 到 qq。

共有三种操作:

  • + u v:加入一条连接服务器 u,vu,v 的无向边。这条边的编号定义为本次操作的操作编号;
  • - id:删除编号为 id 的边。保证 id 对应一次更早的 + 操作,并且这条边当前仍然存在;
  • ?:询问当前网络状态。

对于每次 ?,你需要输出:

  1. 当前连通块数量;
  2. 有多少个无序服务器对 (u,v)(u,v)(u<vu<v)当前处于同一个连通块中。

允许在不同时间加入端点相同的多条边;删除其中一条不会影响其他平行边。

输入格式

第一行两个整数 n,qn,q。

接下来 qq 行,每行是一条操作。

输出格式

对每次 ? 操作输出一行两个整数:当前连通块数量和同连通块无序点对数量。

样例

5 9
+ 1 2
+ 2 3
?
+ 4 5
?
- 2
?
+ 3 4
?
3 3
2 4
3 2
2 4

数据范围

  • 1≤n,q≤2×1051\le n,q\le2\times10^5;
  • 对 + u v,1≤u,v≤n1\le u,v\le n 且 u≠vu\ne v;
  • 所有删除操作均合法。
测试点 分值 特殊限制
1--2 20 n,q≤2000n,q\le2000
3--5 30 不存在 - 操作
6--10 50 无额外限制