logo AlgoBeat OnlineJudge
登录 注册

#215483. [KTSC 2026] 通信网络 2 / Communication Network 2

内存限制:1024 MiB 时间限制:6000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

注意:本题你可在附件中获取更多样例。


有一张 个点的无向图,其中点编号 。这张图中不会出现自环。起初,这张图中没有边。

给定 个边集 。对于 ,在时刻 ,将 与这张图此时的边集作「异或」(对称差)。换言之,设此时图的边集为 ,然后对任意

  • 中,从 中删去
  • 否则,将 添加到 中。

对于非负整数 和两个点 ,我们称点 在时刻 连通,当且仅当时刻 时存在一条连通点 的路径。特别地,若 ,由定义可知上述命题对任意 恒为真。

更进一步地,对于整数 和两个点 ,我们称点 在时段 连通,当且仅当点 在时刻 时均连通。

个询问,每个询问给定 ,返回满足点 在时段 连通的 的数量()。

实现细节

这是一道函数式交互题。你不必,也不应实现 main 函数。

你应当实现以下的函数:

vector<int> count_computers(int N, int T, int Q, vector<vector<array<int, 2>>> E, vector<array<int, 3>> F)
  • :存储边集的数组。 的大小为 。每个 为一个非空的边数组,表示集合 。每条边以大小为 的数组的形式给出,其中的元素依次为 ,表示一条连接点 的边。
  • :存储询问的数组。 的大小为 。对于任意 表示第 次询问。每个询问以大小为 的形式给出,其中元素依次为 ,其中 为一个点, 为一个时段。
  • 返回一个大小为 的数组 。对于任意 表示第 次询问的答案。
  • 该函数被调用恰好一次。

你的源代码中不应调用任何输入/输出函数。

输入格式

示例评测程序的输入格式如下。 表示集合 的大小,且

  • 行:
  • 对于所有
    • 行:
    • 行(): 中第 条边的两个端点)
  • 行(): 的每个元素)

输出格式

示例评测程序按以下格式输出答案:

  • 行():

样例

样例输入 1

4 5 7
2
0 1
1 2
2
2 3
1 3
2
0 1
0 3
4
0 1
1 2
0 3
2 3
1
1 3
1 1 1
2 2 2
3 3 3
0 0 5
2 1 3
1 1 4
3 2 3

样例输出 1

3
4
4
1
3
2
4

数据范围与提示

数据范围

  • 是边集,其中边两两不同。
  • ,则
  • 对于输入中给出的边 ,有
  • 对于输入中给出的查询,有

子任务

编号 得分 限制
对于所有查询,
对于 中给出的所有边
无额外限制

样例

考虑以下调用。

count_computers(4, 5, 7, [[[0, 1], [1, 2]], [[2, 3], [1, 3]], [[0, 1], [0, 3]], [[0, 1], [1, 2], [0, 3], [2, 3]], [[1, 3]], [[1, 1], [2, 2], [3, 3], [0, 0], [0, 5]], [[2, 1, 3], [1, 1, 4], [3, 2, 3]]])

图中有 个点。

在每个时刻,图的形态如下:

  • 在时刻 条边。
  • 在时刻 条边:
  • 在时刻 条边:
  • 在时刻 条边:
  • 在时刻 条边:
  • 在时刻 条边:

总共给出了 个查询:

  • 查询 :在时刻 ,点 与点集 相连。
  • 查询 :在时刻 ,点 与点集 相连。
  • 查询 :在时刻 ,点 与点集 相连。
  • 查询 :由于时刻 不存在任何边,从时刻 ,点 仅与点 相连。
  • 查询 :从时刻 ,点 与点集 相连。
  • 查询 :从时刻 ,点 与点集 相连。
  • 查询 :从时刻 ,点 与点集 相连。

因此,函数应返回

可在附件中获取更多样例。