此题的解题办法就是使用并查集,因为对于查询我们需要快速找到某个城市对应的城市圈的繁荣度,对于城市圈我们可以用并查集来代替,对城市圈中的每一个城市我们都将其放在同一个并查集中,但是对于城市圈的构建与查询我们需要离线来处理,以方便根据时间的大小来同步构建城市圈以及实时的城市查询,比较考验代码基础
#include <iostream>
#include <vector>
#include <algorithm>
现在有一些城市,政府希望建设高铁形成城市圈,让城市更加繁荣。 具体地,(ti,Si) 表示在 ti 时刻,建设高铁把集合 Si 中的城市连接起来,形成一个城市圈。每个城市圈的繁荣度是其中所有城市的人口总和。 现在请你回答不同时刻,某个城市所在城市圈的繁荣度
第一行: n,m,q 分别表示城市个数、建立高铁站次数和查询次数 第二行: a1,⋯,an 表示每个城市人口总数 接下来 m 行的第 i 行: ti 表示建立高铁站的时间, ci 表示高铁站连接的城市个数,后面 ci 个数代表对应的城市编号; 接下来 q 行的第 i 行,每行两个数,ti 表示询问时间,c 表示询问的城市。 如果一个时刻既有修高铁,又有询问,先执行修改,再输出询问结果。
输出 q 行,每行输出对应询问中,对应城市所在城市圈的繁荣度。
输入
5 3 3
1 2 3 4 5
1 2 1 3
3 2 2 5
6 2 3 4
1 1
7 3
5 2
输出
4
8
7
输入
输出