C. 我们相伴在过去与明天(tomorrow)
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述
给定一颗 个点的树。
次查询只保留 内的点,要求刻画出所有极大连通块。
具体的刻画要求是,若连通块为 ,要求输出 。
我们提供了一个结构体用于维护集合,仅支持向其中加入一个点,以及查询 ( 为当前集合)。
【实现细节】
请确保你的程序开头有如下一段代码。
struct component
{
unsigned v;
};
const component emptycomponent=component{0};
void add(component&x,unsigned a);
unsigned val(component&x);
这段代码中定义了如下内容:
-
定义了集合的数据类型
component。 -
定义了空集所对应的
component类型常量emptycomponent,你可以在程序中直接使用。 -
定义了以下修改函数,你可以在程序中直接调用:
void add(component&x,unsigned a);- 这个函数表示向集合 中加入点 ,你应当保证 且不会加入已存在的点,否则该集合的 值是无意义的。
-
定义了函数 ,你可以在程序中直接调用:
unsigned val(component&x);- 返回 。
你不需要,也不应该实现主函数。 你需要实现如下一个函数:
vector<unsigned> solve(int T,int n,int q,vector<int> u,vector<int> v,vector<int> l,vector<int> r);
T表示子任务编号,n表示树的点数,q表示询问数。u和v的长度均为 。对于 , 表示第 条边的两个端点。l和r的长度均为 。对于 , 表示第 个询问。
你需要返回一个长度为 的 vector,其中第 项表示第 个询问的答案。
测试时,在每个测试点,交互库会恰好调用一次 solve 函数。交互库会使用特殊的实现方式,单个 component 类型的变量会恒定消耗 字节内存。
保证在满足调用次数限制且不进行 val 函数调用的情况下,交互库运行所需的时间不超过 0.5 秒,交互库本身所消耗的内存不超过 16 MiB。保证在只执行 次 val 函数调用的情况下,交互库运行的时间不超过 0.5 秒。
【测试程序方式】
本题目录下提供了交互库的参考实现 sample_grader.cpp。最终测试时所用的交互库实现与该实现有不同,因此选手的解法不应依赖交互库的具体实现,同时也不应该依赖其中 add 函数和 val 函数的具体实现。
选手可以在使用如下命令编译得到可执行程序(假设选手程序命名为 code.cpp):
g++ code.cpp sample_grader.cpp -o code -O2 -std=c++14 -lm
按上述方法编译得到的可执行文件 code,其运行方式如下:
- 可执行文件将从标准输入读入以下格式的数据:
- 第一行三个整数 ,分别表示子任务编号、树的点数、询问数;
- 接下来 行每行两个整数 ,描述一条边。
- 接下来 行每行两个整数 ,描述一次询问。
- 读入之后,交互库会进行测试。如果你的程序不满足交互库限制,其会在输出中返回对应的错误信息。否则,对于链接的可执行文件,其输出如下:
- 一行 个整数,表示你的程序对于每个询问给出的答案,可以与对应的答案文件进行比较检查正确性。
- 一行一个整数,表示你的程序调用
add函数的总次数。
输入格式
见【测试程序方式】。
输出格式
见【测试程序方式】。
说明/提示
【样例 #1】
见附件中的 sample1.in 与 sample1.out。
该样例数据范围不满足任何一个子任务,因此其子任务编号为 。
【样例 #2】
见附件中的 sample2.in 与 sample2.out。
该样例满足子任务 4 的数据范围,因此其子任务编号为 。
在一个测试点,你的程序至多能调用 次 add 函数,val 函数的调用次数不限。
【数据范围】
对于所有测试点,。
| 子任务 | 特殊性质 | 分值 | ||
|---|---|---|---|---|
| 无 | ||||
| AC | ||||
| B | ||||
| C | ||||
| 无 |
特殊性质 A:保证第 条边连接 和 。
特殊性质 B:保证树在所有可能的形态中等概率随机生成。
特殊性质 C:保证每个点的度数 。
云斗学院 2026 省选计划系列模拟赛 #3
- Status
- Done
- Rule
- OI
- Problem
- 3
- Start at
- 2026-1-16 0:00
- End at
- 2026-1-18 20:00
- Duration
- 5 hour(s)
- Host
- Partic.
- 86
京公网安备 11011102002149号