小杨寻宝:判断树上边不重复路径能否收集所有宝物
题面描述
小杨有一棵包含n个节点的树,树上的一些节点放置有宝物。 小杨可以任意选择一个节点作为起点并在树上移动,但是小杨只能经过每条边至多一次,当小杨经过一条边后,该边就会消失。小杨每经过一个放置有宝物的节点就会取得该宝物。 小杨想请你帮他判断自己能否成功取得所有宝物。
输入格式
第一行包含一个正整数t,代表测试用例组数。 接下来是t组测试用例,对于每组测试用例,格式如下:
- 第一行包含一个正整数n,代表树的节点数。
- 第二行包含n个非负整数a₁,a₂,…,aₙ,其中如果aᵢ=1,则节点i放置有宝物,若aᵢ=0,则节点i没有宝物。
- 之后n-1行,每行包含两个正整数xᵢ,yᵢ,代表存在一条连接节点xᵢ和yᵢ的边。
输出格式
对于每组测试数据,如果小杨能成功取得所有宝物,输出Yes,否则输出No。
样例1
输入
2
5
0 1 0 1 0
1 2
1 3
3 4
3 5
5
1 1 1 1 1
1 2
1 3
3 4
3 5
输出
Yes
No
样例说明
对于第一组测试用例,小杨从节点2出发,按照2-1-3-4的顺序即可成功取得所有宝物。
数据范围
| 子任务编号 | 数据点占比 | t | n |
|---|---|---|---|
| 1 | 20% | ≤10 | ≤5 |
| 2 | 20% | ≤10 | ≤1000 |
| 3 | 60% | ≤10 | ≤10^5 |
全部数据保证:$1 \leq t \leq 10$,$1 \leq n \leq 10^5$,$0 \leq a_i \leq 1$,且保证树上一定有至少一个节点放置有宝物。
本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析