浅谈并查集:https://www.cnblogs.com/AKMer/p/10360090.html

题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=1202

带权并查集,同POI1733

时间复杂度:\(O(Tm\alpha{n})\)

空间复杂度:\(O(n)\)

代码如下:

#include <cstdio>
using namespace std; const int maxn=105; int n,m;
int fa[maxn],d[maxn]; int read() {
int x=0,f=1;char ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
for(;ch>='0'&&ch<='9';ch=getchar())x=x*10+ch-'0';
return x*f;
} int find(int x) {
if(fa[x]==x)return x;
int tmp=fa[x];
fa[x]=find(fa[x]);
d[x]+=d[tmp];
return fa[x];
} int main() {
int T=read();
while(T--) {
n=read(),m=read();
for(int i=0;i<=n;i++)
fa[i]=i,d[i]=0;
bool ans=1;
for(int i=1;i<=m;i++) {
int l=read()-1,r=read(),x=read();
int p=find(l),q=find(r);
if(p==q&&d[r]-d[l]!=x) {ans=0;break;}
if(p!=q)fa[p]=q,d[p]=d[r]-d[l]-x;
}
if(ans)puts("true");
else puts("false");
}
return 0;
}

最新文章

  1. [nodemon] Internal watch failed: watch ENOSPC错误解决办法
  2. [译文]通过ID, TagName, ClassName, Name, CSS selector 得到element
  3. mybatis 配置返回集合collection时只有一条记录
  4. phalcon:跟踪sql语句
  5. Codeforces Round #133 (Div. 2)
  6. CrazePony飞行器--相关资料网址
  7. css清除浮动的几种方法整理
  8. codevs2492 上帝造题的七分钟 2
  9. javascript中的screen对象
  10. 完美脱离Windows!! Linux发行版第一系统 Manjaro 开箱教程 :)
  11. 【机器学习】异常检测算法(I)
  12. 【转】 ISP-镜头阴影校正(LSC)
  13. 基于MATLAB System Generator 搭建Display Enhancement模型
  14. 使用KeePass管理两步验证
  15. Pandas 库中excel的读写方法介绍
  16. 第六篇:Jmeter Ftp服务器的连接
  17. kafka 支持发布订阅
  18. 微软职位内部推荐-Senior Development Lead – Sharepoint
  19. jquery判断选择元素是否存在
  20. c++中对应java ShutdownHook的退出处理器

热门文章

  1. for update排他锁详解
  2. c++ boost库学习三:实用工具
  3. Idea根据表自动生成实体
  4. 0x5C 计数类DP
  5. C++中随机数的生成
  6. tomcat 正常启动但不能访问
  7. Linux FTP 上传一键脚本
  8. 1.java实现——正规表达式判断
  9. Python之异常总结
  10. 自己动手写OpenStack的QoS功能(4)