树上收益查询
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
树上收益查询
给定一棵有 个点的无向树,点的编号为 至 ,每个点的当前收益为 或 .你需要依次处理两类操作:
C x:把点 的收益乘以 .Q u v k:沿从 到 的简单路径(包含两个端点),选取一段连续的点,询问这段点的收益和能否恰好为 .允许不选点,此时收益和为 .
每次查询只需回答是否存在这样的连续片段.允许 ,此时路径只包含这一个点.
输入格式
第一行输入两个整数 ,分别表示点数和操作数.
第二行输入 个整数 ,表示各点的初始收益,每个数为 或 .
接下来 行,每行两个整数 ,表示点 之间有一条无向边.输入保证这些边构成一棵树.
接下来 行,每行是一条上述形式的操作.
输出格式
对每条 Q 操作输出一行,存在满足条件的连续片段则输出 YES,否则输出 NO.
样例 1
3 5
1 -1 1
1 2
2 3
Q 1 3 2
Q 1 3 0
C 2
Q 1 3 2
Q 2 3 -1
NO
YES
YES
NO
第一次查询时路径收益依次为 ,没有连续片段之和为 .第二次查询可以选择空片段.修改后点 的收益为 ,所以第三次查询可选择点 ;最后一次查询的路径收益均为 ,不能得到 .
更多样例
Data/sample1.in与Data/sample1.ans:,满足子任务 1.Data/sample2.in与Data/sample2.ans:,满足子任务 1.Data/sample3.in与Data/sample3.ans:,满足子任务 2.Data/sample4.in与Data/sample4.ans:,满足子任务 3.Data/sample5.in与Data/sample5.ans:,该样例无特殊限制.Data/sample6.in与Data/sample6.ans:,满足子任务 1.Data/sample7.in与Data/sample7.ans:,满足子任务 3.Data/sample8.in与Data/sample8.ans:,该样例无特殊限制.
这些样例独立于正式评测数据构造;通过下载样例不保证获得对应子任务的分数.
数据范围与子任务
对于所有数据,,,,.
各子任务独立计分;只有通过该子任务的全部测试点才能获得对应分数.表中未列出的限制均与完整数据范围相同.
| 子任务 | 分值 | 特殊性质 |
|---|---|---|
| 1 | 15 | |
| 2 | 20 | 所有操作均为 Q |
| 3 | 树是一条链 | |
| 4 | 45 | 无特殊性质 |