题目 30054

区间连边并查集

查看题解 ↗GitHub ↗如何评测
题号
30054
时间限制
10000 ms
内存限制
1024 MB
标签
数据结构并查集
来源
Library Checker (yosupo06) - range_parallel_unionfind

【题目描述】

有一个包含 NN 个顶点且没有边的无向图 GG,以及一个整数序列 x0,…,xN−1x_0, \ldots, x_{N-1}。请处理 QQ 个如下形式的查询:

  • $k$ $a$ $b$:对于每个 i=0,1,…,k−1i=0,1,\ldots,k-1,向 GG 中添加边 (a+i,b+i)(a+i,b+i)。

处理每个查询后,输出下述定义的 XX 对 998244353998244353 取模后的余数:

  • 如果顶点 ii 和顶点 jj 属于同一个连通块,则定义 same(i,j)=1\mathrm{same}(i,j)=1,否则定义 same(i,j)=0\mathrm{same}(i,j)=0,其中 0≤i,j≤N−10\leq i,j \leq N-1。
  • 定义 X=∑0≤i<j≤N−1same(i,j)xixjX = \sum_{0\leq i<j\leq N-1}\mathrm{same}(i,j)x_ix_j。

【输入】

输入包含:

文本
$N$ $Q$
$x_0$ $\cdots$ $x_{N-1}$
$k$ $a$ $b$
$\vdots
$k$ $a$ $b$

【输出】

对于每个查询,输出一行 XX 对 998244353998244353 取模后的余数。

【输入样例】

文本
5 7
1 1 1 1 1
0 0 0
1 0 0
1 0 2
2 2 1
2 0 1
4 0 0
3 2 1

【输出样例】

文本
0
0
1
6
6
6
10

【输入样例2】

文本
5 7
12 34 56 78 90
0 0 0
1 0 0
1 0 2
2 2 1
2 0 1
4 0 0
3 2 1

【输出样例2】

文本
0
0
672
10940
10940
10940
27140

【数据范围】

  • 1≤N≤5000001 \leq N \leq 500000
  • 1≤Q≤5000001 \leq Q \leq 500000
  • 0≤xi<9982443530 \leq x_i < 998244353
  • 0≤k≤N0 \leq k\leq N
  • 0≤a,b≤N−k0 \leq a,b \leq N-k

【来源】

Library Checker(yosupo06) range_parallel_unionfind

数据下载

题目 30054 的公开数据

正在读取文件列表…

常用命令

题目 30054 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。