Logo Universal Online Judge

UOJ

时间限制:4 s 空间限制:1024 MB
Statistics

刚刚结束

题目描述

给定一棵大小为 $n$ 的无根树,编号为 $i$ 的点初始有点权 $c_i$。

你需要支持两种操作,这两种操作共有 $q$ 个:

  • 将编号为 $x$ 的点权改为 $y$。
  • 定义一个函数 $\operatorname{f}(u,v,l,r)$,如果我们记此时整棵树中有 $d_i$ 个点的点权为 $i$,连接编号为 $u$ 的点和编号为 $v$ 的点的链上有 $e_i$ 个点(包括链的端点)的点权为 $i$,那么 $\operatorname{f}(u,v,l,r)=\sum\limits_{i=l}^{r} \min(e_i,d_i-e_i)$,由于出题人擅长二分,你只需要输出是否有 $\operatorname{f}(u,v,l,r)\le k$。(保证 $k\in\{0,1\}$)

输入格式

第 $1$ 行包含两个正整数 $n,q$,代表树的大小和操作个数。

第 $2$ 行到第 $n$ 行,每行包含两个正整数 $u,v$,代表树上的一条边。

第 $n+1$ 行包含 $n$ 个正整数,描述数列 $c$。

第 $n+2$ 行到第 $n+q+1$ 行,每行包含 $3$ 或 $6$ 个正整数,形式是 $1\ x\ y$ 或 $2\ u\ v\ l\ r\ k$,描述一次操作。

输出格式

对于每个操作二,输出一行,表示是否有 $\operatorname{f}(u,v,l,r)\le k$,如果是输出 Yes,如果否输出 No。

样例

样例输入1
10 10
1 2
2 3
2 4
2 5
5 6
3 7
2 8
4 9
9 10
3 3 4 4 1 5 1 3 2 3 
1 5 5
1 3 2
2 4 7 4 9 1
1 10 8
2 6 7 2 6 1
1 7 9
1 1 8
1 1 4
2 7 3 8 10 1
2 9 2 5 7 0
样例输出1
Yes
No
Yes
Yes

其余样例在下发文件中。

数据范围

对于 $100\%$ 的数据,满足 $1\le n,q\le 2\times 10^5,1\le u,v,c_i,x,y\le n,1\le l\le r\le n,k\in\{0,1\}$。 $$ \def\arraystretch{1.5} \begin{array}{|c|c|c|c|c|} \hline \textbf{Subtask} & \textbf{\textsf{分值}} & {{n\le}} &{{m\le}} & {{k\in}}\cr\hline 1 & 20 & 5000 & 5000 & \{0,1\} \cr\hline 2 & 30 & 10^5 & 10^5 & \{0,1\} \cr\hline 3 & 20 & 2\times 10^5 & 2\times 10^5 & \{0\} \cr\hline 4 & 30 & 2\times 10^5 & 2\times 10^5 & \{0,1\} \cr\hline \end{array} $$

后记

本场比赛的题目名称来自《熊出没》主题曲:

冬眠假期刚刚结束

我还有点糊涂

鸟儿在头顶把森林叫醒

春天空气让我很舒服

天上太阳已红扑扑

看起来很模糊

远处山坡有几棵小树

去年冬眠前我没记住

青草香 浆果甜

喝着露水靠着树

抬起头 踮脚尖

加快我长大的脚步

吹口哨 哼着歌

摇摇晃晃找到路

晃脑袋 揉眼睛

长大的我还有点小糊涂