给定m个区间和,问是否有矛盾

复习一下,带权并查集保存着这个元素与祖先的关系

在合并的过程中就像向量合并一样,可以画出x->fa[x],y->fa[y],x->y这样的图方便理解

这篇文章解释得很清楚NOIAu

//#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<queue>
#include<string.h>
#include<math.h>
#include<set>
#include<map>
#include<vector>
#include<iomanip>
#include<stack>
using namespace std;
#define ll long long
#define ull unsigned long long
#define pb push_back
#define mem(a) memset(a,0,sizeof a)
#define FOR(a) for(int i=1;i<=a;i++)const int maxn=1e2+7;int fa[maxn],v[maxn],flag,t;int find(int x){if(fa[x]==x)return x;t=find(fa[x]);v[x]+=v[fa[x]];fa[x]=t;return fa[x];
}void work(int x,int y,int w){int p=find(x),q=find(y);if(p!=q){fa[p]=q;v[p]=v[y]-v[x]-w;}else if(v[y]-v[x]!=w)flag=1;
}int main(){int w,n,m;scanf("%d",&w);while(w--){memset(v,0,sizeof v);flag=0;scanf("%d%d",&n,&m);for(int i=0;i<=n;i++)fa[i]=i;for(int i=1;i<=m;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(!flag)work(x-1,y,z);}if(flag)printf("false\n");else printf("true\n");}
}

转载于:https://www.cnblogs.com/Drenight/p/8611226.html

[HNOI2005]狡猾的商人 带权并查集相关推荐

  1. P2294 [HNOI2005]狡猾的商人(带权并查集+前缀和)

    P2294 [HNOI2005]狡猾的商人 解题思路:这里用带权并查集记录每个节点与自己祖先的距离.如果两个点没有相同的祖先,那么需要把这两个集合合并起来,用已经的点确定p点到q的距离,num[p] ...

  2. P2294 [HNOI2005]狡猾的商人 带权并查集

    顺便回顾下带权并查集. 在普通并查集的基础上维护一个d数组,表示权值. 这题d[i]表示当前节点x与其祖宗节点get(x), 的sm差值,即sm[x]-sm[get(x)] =d[x] 初始d均为0. ...

  3. 狡猾的商人(带权并查集)

    刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3-n-1,n), .当 Ai大于0时表示这个月盈利A ...

  4. BZOJ 1202-狡猾的商人(带权并查集)

    1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3679  Solved: 1765 [Submit][S ...

  5. 2017乌鲁木齐区域赛I(带权并查集)

    #include<bits/stdc++.h> using namespace std; int f[200010];//代表元 long long rl[200010];//记rl[i] ...

  6. BZOJ 2303 方格染色(带权并查集)

    要使得每个2*2的矩形有奇数个红色,如果我们把红色记为1,蓝色记为0,那么我们得到了这2*2的矩形里的数字异或和为1. 对于每个方格则有a(i,j)^a(i-1,j)^a(i,j-1)^a(i-1,j ...

  7. POJ1703带权并查集(距离或者异或)

    题意:       有两个黑社会帮派,有n个人,他们肯定属于两个帮派中的一个,然后有两种操作 1 D a b 给出a b 两个人不属于同一个帮派 2 A a b 问a b 两个人关系 输出 同一个帮派 ...

  8. POJ1988(带权并查集,搬砖块)

    题意:        可以这样理解,有n快方形积木,一开始都是单独的放到哪,然后有两种操作 1 M a b 把a所在的那一堆落到b所在那一堆的上面(一开始自己是一堆) 2 C a 问a下面有多少个积木 ...

  9. LA3027简单带权并查集

    题意:       有n个点,一开始大家都是独立的点,然后给出一些关系,a,b表示a是b的父亲节点,距离是abs(a-b)%1000,然后有一些询问,每次询问一个节点a到父亲节点的距离是多少? 思路: ...

最新文章

  1. 3.request response
  2. 求1 + 2 + 3...+ n的和
  3. java 设置panel背景图片_jpanel设置背景图片的二个小例子
  4. mysql也能注册到eureka_为什么我的服务提供者和消费者都注册不到eureka注册中心?...
  5. html5 页面 参数传递,详解html中页面跳转传递参数的问题
  6. 当初阿里巴巴、百度、美团都差点错过的架构,现在用起来真香!
  7. Struts2 用 s:if test 判断属性和字符串相等时 注意双引号和单引号的使用 《转》...
  8. javaweb(02) JavaScript基础知识
  9. 多线程之Thread类
  10. 父游标、子游标及共享游标
  11. C语言如何制作dIL文件,C语言学习笔记———指针
  12. Android Studio的单元测试
  13. 模拟退火(SA)算法实例介绍(JAVA)
  14. 基于pygame的小游戏开发
  15. 安卓端使用MT终端管理器crontab设置定时任务
  16. Mac技巧:新手必看Macbook快捷键使用大全
  17. pandas 的基本使用
  18. ShaderJoy —— 心形爆炸烟花效果【GLSL】
  19. HTML打开网页自动播放音乐
  20. 高级Java程序员值得拥有的10本书

热门文章

  1. [转]四种π型RC滤波电路
  2. mysql的主从(AB)复制
  3. SilverLight学习笔记--实际应用(一)(4):手把手建立一个Silverlight应用程序之同步数据校验1...
  4. Python中利用*打印不同的三角形
  5. mysql主库从库在同一台服务器_MySQL_MySQL 数据库两台主机同步实战(linux),当一个从服务器连接到主服务 - phpStudy...
  6. 如何查看一个组件的 classid是多少_如何快速查看胎压?胎压多少才正常?带您全面了解爱车的轮胎...
  7. 现货黄金短线下破1760美元/盎司
  8. SAP License:财务帐与后勤不一致情况
  9. SAP License:满足管理三重属性 ERP发展专业化是方向
  10. 【Tomcat】安装Tomcat服务器Tomcat的目录结构