CF1388C.Uncle Bogdan and Country Happiness
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Uncle Bogdan is in captain Flint's crew for a long time and sometimes gets nostalgic for his homeland. Today he told you how his country introduced a happiness index.
There are n cities and n−1 undirected roads connecting pairs of cities. Citizens of any city can reach any other city traveling by these roads. Cities are numbered from 1 to n and the city 1 is a capital. In other words, the country has a tree structure.
There are m citizens living in the country. A pi people live in the i-th city but all of them are working in the capital. At evening all citizens return to their home cities using the shortest paths.
Every person has its own mood: somebody leaves his workplace in good mood but somebody are already in bad mood. Moreover any person can ruin his mood on the way to the hometown. If person is in bad mood he won't improve it.
Happiness detectors are installed in each city to monitor the happiness of each person who visits the city. The detector in the i-th city calculates a happiness index hi as the number of people in good mood minus the number of people in bad mood. Let's say for the simplicity that mood of a person doesn't change inside the city.
Happiness detector is still in development, so there is a probability of a mistake in judging a person's happiness. One late evening, when all citizens successfully returned home, the government asked uncle Bogdan (the best programmer of the country) to check the correctness of the collected happiness indexes.
Uncle Bogdan successfully solved the problem. Can you do the same?
More formally, You need to check: "Is it possible that, after all people return home, for each city i the happiness index will be equal exactly to hi".
博格丹大叔是弗林特船长船员中的一员,已经很久了,有时会怀念自己的祖国。今天,他向你讲述了祖国引入幸福指数的过程。
该国有 n 座城市和 n−1 条无向道路,连接若干对城市。任意城市的居民均可通过这些道路到达其他任意城市。城市编号为 1 到 n,其中城市 1 为首都。换言之,该国的结构是一棵树。
该国有 m 名居民。第 i 座城市居住着 pi 人,但他们全都在首都工作。每天傍晚,所有居民均沿最短路径返回各自家乡。
每个人都有自己的情绪:有些人离开工作地时心情愉快,而另一些人则已心情低落。此外,任何人还可能在返程途中恶化自身情绪;但若某人已处于低落情绪,则其情绪不会再变好。
每座城市均安装有幸福探测器,用于监测每个经过该城市的居民的情绪状态。第 i 座城市的探测器计算出的幸福指数 hi 定义为:经过该城市的、情绪愉快的人数减去情绪低落的人数。为简化起见,我们假设一个人的情绪在其身处某座城市内部期间不会发生变化。
目前幸福探测器尚在开发阶段,因此在判断个人情绪时存在出错概率。某个深夜,当所有居民均已成功返家后,政府请博格丹大叔(该国最优秀的程序员)核查所收集到的幸福指数是否正确。
博格丹大叔成功解决了这一问题。你能否也做到呢?
更正式地讲,你需要判断:“在所有人全部返家后,是否可能存在一种情绪状态分配方式,使得对每座城市 i,其幸福指数恰好等于 hi”。
输入格式
The first line contains a single integer t (1≤t≤10000) — the number of test cases.
The first line of each test case contains two integers n and m (1≤n≤105; 0≤m≤109) — the number of cities and citizens.
The second line of each test case contains n integers p1,p2,…,pn (0≤pi≤m; p1+p2+…+pn=m), where pi is the number of people living in the i-th city.
The third line contains n integers h1,h2,…,hn (−109≤hi≤109), where hi is the calculated happiness index of the i-th city.
Next n−1 lines contain description of the roads, one per line. Each line contains two integers xi and yi (1≤xi,yi≤n; xi=yi), where xi and yi are cities connected by the i-th road.
It's guaranteed that the sum of n from all test cases doesn't exceed 2⋅105.
第一行包含一个整数 t(1≤t≤10000)—— 测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 m(1≤n≤105;0≤m≤109)—— 城市数量与市民总数。
每个测试用例的第二行包含 n 个整数 p1,p2,…,pn(0≤pi≤m;且满足 p1+p2+…+pn=m),其中 pi 表示第 i 个城市中居住的人口数量。
第三行包含 n 个整数 h1,h2,…,hn(−109≤hi≤109),其中 hi 表示第 i 个城市的计算所得幸福感指数。
接下来 n−1 行描述道路,每行一条。每行包含两个整数 xi 和 yi(1≤xi,yi≤n;xi=yi),表示第 i 条道路连接的城市 xi 和 yi。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
For each test case, print YES, if the collected data is correct, or NO — otherwise. You can print characters in YES or NO in any case.
对于每个测试用例,如果收集到的数据正确,则输出 YES;否则输出 NO。YES 或 NO 中的字母大小写不限。
输入输出样例
输入#1
2 7 4 1 0 1 1 0 1 0 4 0 0 -1 0 -1 0 1 2 1 3 1 4 3 5 3 6 3 7 5 11 1 2 5 2 1 -11 -2 -6 -2 -1 1 2 1 3 1 4 3 5
输出#1
YES YES
输入#2
2 4 4 1 1 1 1 4 1 -3 -1 1 2 1 3 1 4 3 13 3 3 7 13 1 4 1 2 1 3
输出#2
NO NO
说明/提示
Let's look at the first test case of the first sample:

At first, all citizens are in the capital. Let's describe one of possible scenarios:
- a person from city 1: he lives in the capital and is in good mood;
- a person from city 4: he visited cities 1 and 4, his mood was ruined between cities 1 and 4;
- a person from city 3: he visited cities 1 and 3 in good mood;
- a person from city 6: he visited cities 1, 3 and 6, his mood was ruined between cities 1 and 3;
In total,
- h1=4−0=4,
- h2=0,
- h3=1−1=0,
- h4=0−1=−1,
- h5=0,
- h6=0−1=−1,
- h7=0.
The second case of the first test:

All people have already started in bad mood in the capital — this is the only possible scenario.
The first case of the second test:

The second case of the second test:

It can be proven that there is no way to achieve given happiness indexes in both cases of the second test.
我们来看第一个样例的第一个测试用例:

初始时,所有市民均位于首都。下面描述一种可能的情形:
- 来自城市 1 的人:他居住在首都,且心情良好;
- 来自城市 4 的人:他访问了城市 1 和 4,其心情在城市 1 与城市 4 之间变差;
- 来自城市 3 的人:他以良好心情访问了城市 1 和 3;
- 来自城市 6 的人:他访问了城市 1、3 和 6,其心情在城市 1 与城市 3 之间变差;
总计,
- h1=4−0=4,
- h2=0,
- h3=1−1=0,
- h4=0−1=−1,
- h5=0,
- h6=0−1=−1,
- h7=0。
第一个样例的第二个测试用例:

所有人一开始已在首都处于坏心情——这是唯一可能的情形。
第二个样例的第一个测试用例:

第二个样例的第二个测试用例:

可以证明:在第二个样例的两个测试用例中,均无法实现所给定的幸福指数。
输入解题思路,AI测评打分。不知道怎么写?