luogu#P5354. [Ynoi2017] 由乃的 OJ

[Ynoi2017] 由乃的 OJ

题目背景

题目描述

由乃正在做她的OJ。现在她在处理OJ上的用户排名问题。

OJ 上注册了 nn 个用户,编号为 1n1\sim n,一开始他们按照编号排名。由乃会按照心情对这些用户做以下四种操作,修改用户的排名和编号:然而由乃心情非常不好,因为 Deus 天天问她题。。。

因为 Deus 天天问由乃 OI 题,所以由乃去学习了一下 OI,由于由乃智商挺高,所以 OI 学的特别熟练。

她在 RBOI2016 中以第一名的成绩进入省队,参加了 NOI2016 获得了金牌保送。

Deus:这个题怎么做呀?
yuno:这个不是 NOI2014 的水题吗。。。
Deus:那如果出到树上,多组链询问,带修改呢?
yuno:诶。。。???
Deus:这题叫做睡觉困难综合征哟~

虽然由乃 OI 很好,但是她基本上不会 DS,线段树都只会口胡,比如她 NOI2016 的分数就是 100+100+100+0+100+100100+100+100+0+100+100。。。NOIP2017 的分数是 100+0+100+100+0+100100+0+100+100+0+100

所以她还是只能找你帮她做了。。。

给你一个有 nn 个点的树,每个点的包括一个位运算 optopt 和一个权值 xx,位运算有&|^ 三种,分别用 1,2,31,2,3 表示。

每次询问包含三个整数 x,y,zx,y,z,初始选定一个数 vv。然后 vv 依次经过从 xxyy 的所有节点,每经过一个点 iivv 就变成 v opti xiv\ opt_i\ x_i,所以他想问你,最后到 yy 时,希望得到的值尽可能大,求最大值。给定的初始值 vv 必须是在 [0,z][0,z] 之间。

每次修改包含三个整数 x,y,zx,y,z,意思是把 xx 点的操作修改为 yy,数值改为 zz

输入格式

第一行三个整数 n,m,kn,m,kkk 的意义是每个点上的数,以及询问中的数值 zz 都小于 2k2^k

之后 nn 行,每行两个整数 x,yx,y 表示该点的位运算编号以及数值。

之后 n1n - 1 行,每行两个数 x,yx,y 表示 xxyy 之间有边相连。

之后 mm 行,每行四个数,Q,x,y,zQ,x,y,z 表示这次操作为 QQ11 为询问,22 为修改),x,y,zx,y,z 意义如题所述。

输出格式

对于每个操作 11,输出到最后可以得到的最大值。

5 5 3
1 7
2 6
3 7
3 6
3 1
1 2
2 3
3 4
1 5
1 1 4 7
1 1 3 5
2 1 1 3
2 3 3 3
1 1 3 2
7
1
5
2 2 2
2 2
2 2
1 2
2 2 2 2
1 2 2 2
3

提示

Idea:f321dd,Solution:f321dd&nzhtl1477,Code:nzhtl1477,Data:nzhtl1477

对于 30%30\% 的数据,n,m1n,m\leq 1

对于另外 20%20\% 的数据,k5k\leq 5

对于另外 20%20\% 的数据,位运算只会出现一种。

对于 100%100\% 的数据,0n,m1050\leq n,m \leq 10^50k640\leq k\leq 64