题目 20067

树的基础练习题

查看题解 ↗GitHub ↗如何评测
题号
20067
标签
比赛
来源
2026 普及模拟赛 12 - b

树的基础练习题

题目描述

给定一颗 nn 个节点的有根树,节点编号为 1∼n1\sim n,其中 11 号点是根节点。树上每个点有初始权值 a1,…,ana_1,\dots, a_n。

接下来有 mm 次操作,每次操作给出三个参数 opi,xi,viop_i,x_i,v_i:

  • opi=1op_i=1 时,表示将 xix_i 及以 xix_i 为根的子树内的节点权值全部异或上 viv_i;
  • opi=2op_i=2 时,表示将从 xix_i 到根节点的简单路径上的所有节点(包括路径端点)的权值全部异或上 viv_i。

这 mm 次操作结束后,请你依次输出树上每个节点的最终权值 a1′,…,an′a_1',\dots,a_n'。

输入格式

第一行两个正整数 n,mn,m,意义如题目描述。

接下来一行 n−1n-1 个以空格分隔的正整数 p2,p3,…,pnp_2,p_3,\dots,p_n,依次描述 2∼n2\sim n 号节点的父亲节点编号。

接下来一行 nn 个以空格分隔的非负整数 a1,…,ana_1,\dots,a_n。

接下来 mm 行,每行三个以空格分隔的整数 opi,xi,viop_i,x_i,v_i,描述一次操作。

输出格式

一行 nn 个以空格分隔的非负整数 a1′,…,an′a_1',\dots,a_n',表示所有操作完成之后树上每个节点的最终权值。

样例输入

文本
6 5
4 1 1 6 3 
12 3 20 12 11 9 
1 2 14
2 2 16
2 3 20
1 3 16
1 4 18

样例输出

文本
8 15 16 14 27 25

数据范围

本题共包含 1010 个测试点。对于全部测试数据,3≤n,m≤105,0≤ai,vj≤109,opj∈{1,2},1≤xj≤n,∀1≤i≤n,1≤j≤m,1≤p2,p3,…,pn≤n3\le n,m\le 10^5,0\le a_i,v_j\le 10^9,op_j\in\{1,2\},1\le x_j\le n,\forall 1\le i\le n,1\le j\le m,1\le p_2,p_3,\dots,p_n\le n,保证构成一颗树。

测试点编号 n,m≤n,m\le 特殊性质
1∼31\sim 3 10001000 -
4∼54\sim 5 10510^5 pi=i−1,∀2≤i≤np_i=i-1, \forall 2\le i\le n
6∼76\sim 7 10510^5 opi=1,∀1≤i≤mop_i=1,\forall 1\le i\le m
8∼108\sim 10 10510^5 -

数据下载

题目 20067 的公开数据

正在读取文件列表…

常用命令

题目 20067 的 ROJ 命令

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