Description
由乃正在做她的OJ。现在她在处理OJ上的用户排名问题。OJ上注册了n个用户,编号为1~",一开始他们按照编号
排名。由乃会按照心情对这些用户做以下四种操作,修改用户的排名和编号:然而由乃心情非常不好,因为Deus天
天问她题。。。因为Deus天天问由乃OI题,所以由乃去学习了一下OI,由于由乃智商挺高,所以OI学的特别熟练她
在RBOI2016中以第一名的成绩进入省队,参加了NOI2016获得了金牌保送
Deus:这个题怎么做呀?
yuno:这个不是NOI2014的水题吗。。。
Deus:那如果出到树上,多组链询问,带修改呢?
yuno:诶。。。???
Deus:这题叫做睡觉困难综合征哟~
虽然由乃OI很好,但是她基本上不会DS,线段树都只会口胡,比如她NOI2016的分数就是100+100+100+0+100+100。
。。NOIP2017的分数是100+0+100+100+0+100所以她还是只能找你帮她做了。。。
给你一个有n个点的树,每个点的包括一个位运算opt和一个权值x,位运算有&,l,^三种,分别用1,2,3表示。
每次询问包含三个数x,y,z,初始选定一个数v。然后v依次经过从x到y的所有节点,每经过一个点i,v就变成v opti xi,所以他想问你,最后到y时,希望得到的值尽可能大,求最大值?给定的初始值v必须是在[0,z]之间。每次修改包含三个数x,y,z,意思是把x点的操作修改为y,数值改为z
Input
第一行三个数n,m,k。k的意义是每个点上的数,以及询问中的数值z都 <2^k。
之后n行,每行两个数x,y表示该点的位运算编号以及数值
之后n - 1行,每行两个数x,y表示x和y之间有边相连
之后m行,每行四个数,Q,x,y,z表示这次操作为Q(1位询问,2为修改),x,y,z意义如题所述
Output
对于每个操作1,输出到最后可以造成的最大刺激度v
Solution
好…好题。
当年做起床睡觉综合症都快心肌梗塞了,出题人还加强,真是个带善人。
就无脑树剖一波,然后像起床睡觉综合症那样做就完事了。
把每一位分别处理,注意到只有&0,|1, ^ 1会对原数这一位上的数造成变化。我们可以将&0和|1视为强行修改,^1视为翻转操作,那我们统计有没有出现这样的修改和翻转操作就行了。
注意修改是可以覆盖之前所有的翻转操作的。
以及要用一棵反的线段树查询x-lca,一棵正的线段树查询lca-y。
因为要保证顺序是x-y,x-lca是从下往上查询,y-lca是从上往下查询。
要 压 位。
然后 有 亿 点 点 卡 常。
最后 有 亿 点 点 难 调。
祝 你 好 运。
Code
没调出来。
no such code