upc-2021个人训练赛第27场 D: Values(思维+并查集)

简介: upc-2021个人训练赛第27场 D: Values(思维+并查集)

问题 D: Values

时间限制: 1 Sec 内存限制: 128 MB


题目描述

Given is a simple undirected graph with N vertices and M edges. The i-th edge connects Vertex ci and Vertex di. Initially, Vertex i has the value ai written on it. You want to change the values on Vertex 1, …, Vertex N to b1, ⋯, bN, respectively, by doing the operation below zero or more times.

Choose an edge, and let Vertex x and Vertex y be the vertices connected by that edge. Choose one of the following and do it:

Decrease the value ax by 1, and increase the value ay by 1.

Increase the value ax by 1, and decrease the value ay by 1.

Determine whether it is possible to achieve the objective by properly doing the operation.

Constraints

1≤N≤2×105

0≤M≤2×105

−109≤ai,bi≤109

1≤ci,di≤N

The given graph is simple, that is, has no self-loops and no multi-edges.

All values in input are integers.


输入

Input is given from Standard Input in the following format:


N M

a1 ⋯ aN

b1 ⋯ bN

c1 d1

cM dM


输出

Print Yes if it is possible to achieve the objective by properly doing the operation, and No otherwise.

样例输入 Copy

【样例1】

3 2

1 2 3

2 2 2

1 2

2 3

【样例2】

1 0

5

5

【样例3】

2 1

1 1

2 1

1 2

【样例4】

17 9

-905371741 -999219903 969314057 -989982132 -87720225 -175700172 -993990465 929461728 895449935 -999016241 782467448 -906404298 578539175 9684413 -619191091 -952046546 125053320

-440503430 -997661446 -912471383 -995879434 932992245 -928388880 -616761933 929461728 210953513 -994677396 648190629 -530944122 578539175 9684413 595786809 -952046546 125053320

2 10

6 12

9 11

11 5

7 6

3 15

3 1

1 9

10 4

样例输出 Copy

【样例1】

Yes

【样例2】

Yes

【样例3】

No

【样例4】

Yes

提示

样例1解释:

You can achieve the objective by, for example, doing the operation as follows:

In the first operation, choose the edge connecting Vertex 1 , 2. Then, increase a1 by 1 , decrease a2 by 1.

In the second operation, choose the edge connecting Vertex 2 , 3. Then, increase a2 by 1 , decrease a3 by 1.

This sequence of operations makes a1=2, a2=2, a3=2.


样例2解释:

The objective may be achieved already in the beginning.

样例3解释:

There is no way to do the operation to achieve the objective.

思路:

考虑一个连通块里的权值是可以相互转化的,也就是说对于一个连通块来说,如果a的和等于b的和,说明该连通块里的点的权值都能够变成b.

用并查集维护连通块信息的时候再维护一下a , b的和就好了。

代码:

const int maxn=3e5+7;
ll n,m,a[maxn],b[maxn];
ll sa[maxn],sb[maxn],root[maxn];
ll find(ll x){
    if(x!=root[x]) root[x]=find(root[x]);
    return root[x];
}
int main(){
    n=read,m=read;
    rep(i,1,n) a[i]=read,root[i]=i,sa[i]=a[i];
    rep(i,1,n) b[i]=read,sb[i]=b[i];
    while(m--){
        ll u=read,v=read;
        ll fu=find(u),fv=find(v);
        if(fu==fv) continue;
        root[fu]=fv;
        sa[fv]+=sa[fu];sb[fv]+=sb[fu]; 
    }
    bool flag=1;
    rep(i,1,n)
        if(i==find(i)){
            if(sa[i]!=sb[i]){
                flag=0;break;
            }
        }
    if(flag) puts("Yes");
    else puts("No");
    return 0;
}
目录
相关文章
|
机器学习/深度学习
UPC - 2022春混合个人训练赛第五场 D Seahorse Shoes(贪心+模拟)
UPC - 2022春混合个人训练赛第五场 D Seahorse Shoes(贪心+模拟)
85 0
|
C语言 C++
PTA团体程序设计天梯赛-练习集: L1-050 倒数第N个字符串 ( 15分 )
给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串。 输入格式: 输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤105)。 输出格式: 在一行中输出对应序列倒数第 N 个字符串。题目保证这个字符串是存在的。 输入样例:
174 0
|
测试技术 C语言 C++
PTA团体程序设计天梯赛-练习集:L1-003 个位数统计
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。 输出格式: 对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
206 0
|
存储
UPC组队第三场——K: A Famous Grid (BFS+细节)
UPC组队第三场——K: A Famous Grid (BFS+细节)
83 0
UPC组队第三场——K: A Famous Grid (BFS+细节)
|
人工智能
UPC2021个人训练赛第39场 C: 粉兔找妹子(换根dp)
UPC2021个人训练赛第39场 C: 粉兔找妹子(换根dp)
98 0
UPC2021个人训练赛第39场 C: 粉兔找妹子(换根dp)
|
人工智能 BI
UPC Decayed Bridges(并查集+思维)
UPC Decayed Bridges(并查集+思维)
101 0
|
机器人
UPC—— 最勇敢的机器人(并查集+分组背包)
UPC—— 最勇敢的机器人(并查集+分组背包)
78 0
|
数据格式
UPC新生赛—— 排序(思维)
UPC新生赛—— 排序(思维)
106 0
upc2021个人训练赛第22场A. 联通数(思维)
upc2021个人训练赛第22场A. 联通数(思维)
55 0
|
人工智能
upc2021个人训练赛第23场M: 紫罗兰(dsu)
upc2021个人训练赛第23场M: 紫罗兰(dsu)
95 0