CF1537F.Figure Fixing
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You have a connected undirected graph made of n nodes and m edges. The i-th node has a value vi and a target value ti.
In an operation, you can choose an edge (i,j) and add k to both vi and vj, where k can be any integer. In particular, k can be negative.
Your task to determine if it is possible that by doing some finite number of operations (possibly zero), you can achieve for every node i, vi=ti.
你有一个由 n 个节点和 m 条边构成的连通无向图。第 i 个节点具有一个值 vi 和一个目标值 ti。
在一次操作中,你可以选择一条边 (i,j),并将任意整数 k 同时加到 vi 和 vj 上(特别地,k 可以为负数)。
你的任务是判断:是否可以通过执行有限次(可能为零次)上述操作,使得对每个节点 i,均有 vi=ti。
输入格式
The first line contains a single integer t (1≤t≤1000), the number of test cases. Then the test cases follow.
The first line of each test case contains two integers n, m (2≤n≤2⋅105, n−1≤m≤min(2⋅105,2n(n−1))) — the number of nodes and edges respectively.
The second line contains n integers v1…,vn (−109≤vi≤109) — initial values of nodes.
The third line contains n integers t1…,tn (−109≤ti≤109) — target values of nodes.
Each of the next m lines contains two integers i and j representing an edge between node i and node j (1≤i,j≤n, i=j).
It is guaranteed that the graph is connected and there is at most one edge between the same pair of nodes.
It is guaranteed that the sum of n over all testcases does not exceed 2⋅105 and the sum of m over all testcases does not exceed 2⋅105.
第一行包含一个整数 t(1≤t≤1000),表示测试用例的数量。接下来是各测试用例。
每个测试用例的第一行包含两个整数 n 和 m(2≤n≤2⋅105,n−1≤m≤min(2⋅105,2n(n−1))),分别表示节点数和边数。
第二行包含 n 个整数 v1,…,vn(−109≤vi≤109)—— 各节点的初始值。
第三行包含 n 个整数 t1,…,tn(−109≤ti≤109)—— 各节点的目标值。
接下来的 m 行中,每行包含两个整数 i 和 j,表示节点 i 与节点 j 之间存在一条边(1≤i,j≤n,i=j)。
保证该图是连通的,且任意一对节点之间至多只有一条边。
保证所有测试用例的 n 之和不超过 2⋅105,且所有测试用例的 m 之和不超过 2⋅105。
输出格式
For each test case, if it is possible for every node to reach its target after some number of operations, print "YES". Otherwise, print "NO".
对于每个测试用例,如果经过若干次操作后,每个节点均能到达其目标位置,则输出 "YES";否则,输出 "NO"。
输入输出样例
输入#1
2 4 4 5 1 2 -3 3 3 10 1 1 2 1 4 3 2 3 4 4 4 5 8 6 6 -3 1 15 4 1 2 1 4 3 2 3 4
输出#1
YES NO
说明/提示
Here is a visualization of the first test case (the orange values denote the initial values and the blue ones the desired values):

One possible order of operations to obtain the desired values for each node is the following:
- Operation 1: Add 2 to nodes 2 and 3.
- Operation 2: Add −2 to nodes 1 and 4.
- Operation 3: Add 6 to nodes 3 and 4.
Now we can see that in total we added −2 to node 1, 2 to node 2, 8 to node 3 and 4 to node 4 which brings each node exactly to it's desired value.
For the graph from the second test case it's impossible to get the target values.
以下是第一个测试用例的可视化图示(橙色数值表示初始值,蓝色数值表示目标值):

一种可实现各节点目标值的操作顺序如下:
- 操作 1:向节点 2 和 3 各加 2。
- 操作 2:向节点 1 和 4 各加 −2。
- 操作 3:向节点 3 和 4 各加 6。
此时可以看出,节点 1 总共被加上了 −2,节点 2 总共被加上了 2,节点 3 总共被加上了 8,节点 4 总共被加上了 4,从而使每个节点的值恰好达到其目标值。
对于第二个测试用例中的图,无法得到目标值。
输入解题思路,AI测评打分。不知道怎么写?