CF1891F.A Growing Tree
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a rooted tree with the root at vertex 1, initially consisting of a single vertex. Each vertex has a numerical value, initially set to 0. There are also q queries of two types:
- The first type: add a child vertex with the number sz+1 to vertex v, where sz is the current size of the tree. The numerical value of the new vertex will be 0.
- The second type: add x to the numerical values of all vertices in the subtree of vertex v.
After all queries, output the numerical value of all of the vertices in the final tree.
你将得到一棵以顶点 1 为根的有根树,初始时仅包含一个顶点。每个顶点都有一个数值,初始值均为 0。此外还有 q 个查询,分为两种类型:
- 第一种类型:向顶点 v 添加一个子顶点,其编号为 sz+1,其中 sz 是当前树的大小(即顶点总数)。新顶点的数值为 0。
- 第二种类型:将 x 加到顶点 v 的子树中所有顶点的数值上。
执行完所有查询后,输出最终树中所有顶点的数值。
输入格式
The first line contains a single integer T (1≤T≤104) — the number of test cases. The descriptions of the test cases follow.
The first line of each test case contains a single integer q (1≤q≤5⋅105) — the number of queries.
The following q lines can fall into two cases:
- The first type of query: The i-th line contains two integers ti (ti=1), vi. You need to add a child with the number sz+1 to vertex vi, where sz is the current size of the tree. It is guaranteed that 1≤vi≤sz.
- The second type of query: The i-th line contains three integers ti (ti=2), vi, xi (−109≤xi≤109). You need to add xi to all numerical values of vertices in the subtree of vi. It is guaranteed that 1≤vi≤sz, where sz is the current size of the tree.
It is guaranteed that the sum of q across all test cases does not exceed 5⋅105.
第一行包含一个整数 T(1≤T≤104)——测试用例的数量。接下来是各测试用例的描述。
每个测试用例的第一行包含一个整数 q(1≤q≤5⋅105)——查询次数。
接下来的 q 行分为以下两类:
- 第一类查询:第 i 行包含两个整数 ti(ti=1)和 vi。你需要向顶点 vi 添加一个编号为 sz+1 的子节点,其中 sz 是当前树的大小。保证 1≤vi≤sz。
- 第二类查询:第 i 行包含三个整数 ti(ti=2)、vi 和 xi(−109≤xi≤109)。你需要将 xi 加到顶点 vi 的子树中所有顶点的数值上。保证 1≤vi≤sz,其中 sz 是当前树的大小。
保证所有测试用例中 q 的总和不超过 5⋅105。
输出格式
For each test case, output the numerical value of each vertex of the final tree after all queries have been performed.
对于每个测试用例,输出执行完所有查询后最终树中每个顶点的数值。
输入输出样例
输入#1
3 9 2 1 3 1 1 2 2 1 1 1 2 3 2 1 3 2 1 4 1 3 2 3 2 5 2 1 1 1 1 2 1 -1 1 1 2 1 1 5 1 1 1 1 2 1 1 2 1 3 2 2 10
输出#1
7 5 8 6 2 1 0 1 4 14 4
说明/提示
In the first case, the final tree with the assigned numerical values will look like this:
The final tree with the assigned numerical values
在第一种情况下,分配数值后的最终树形结构如下所示:
分配数值后的最终树形结构
输入解题思路,AI测评打分。不知道怎么写?