题解:AT_arc106_b [ARC106B] Values
题目其实不难,乍一眼看可能会误认为是搜索,仔细读题,其实跟并查集相关,因为有两种选择。所以我们用并查集查找相连的边,然后遍历一遍就做完了。
#include<bits/stdc++.h>
using namespace std;
int n, m, b[400005], a[200005];
int father[200005];
long long sum[200005];
int find(int x){
return father[x] ? father[x] = find(father[x]) : x;
}
bool vis[200001];
int main(){
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i ++) cin >> a[i];
for(int i = 1; i <= n; i ++) cin >> b[i];
for(int i = 1, u, v; i <= m; i ++){
cin >> u >> v;
u = find(u), v = find(v);
if(u != v) father[u] = v;
}
for(int i = 1; i <= n; i ++) sum[find(i)] += a[i] - b[i];
for(int i = 1; i <= n; i ++) if(sum[i]) puts("No"), exit(0);
puts("Yes");
return 0;
}
分类:
题解
posted on 2024-04-10 18:59 zhangzirui66 阅读(3) 评论(0) 编辑 收藏 举报 来源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下