[HNOI2005]狡猾的商人 带权并查集
给定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]狡猾的商人 带权并查集相关推荐
- P2294 [HNOI2005]狡猾的商人(带权并查集+前缀和)
P2294 [HNOI2005]狡猾的商人 解题思路:这里用带权并查集记录每个节点与自己祖先的距离.如果两个点没有相同的祖先,那么需要把这两个集合合并起来,用已经的点确定p点到q的距离,num[p] ...
- P2294 [HNOI2005]狡猾的商人 带权并查集
顺便回顾下带权并查集. 在普通并查集的基础上维护一个d数组,表示权值. 这题d[i]表示当前节点x与其祖宗节点get(x), 的sm差值,即sm[x]-sm[get(x)] =d[x] 初始d均为0. ...
- 狡猾的商人(带权并查集)
刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3-n-1,n), .当 Ai大于0时表示这个月盈利A ...
- BZOJ 1202-狡猾的商人(带权并查集)
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3679 Solved: 1765 [Submit][S ...
- 2017乌鲁木齐区域赛I(带权并查集)
#include<bits/stdc++.h> using namespace std; int f[200010];//代表元 long long rl[200010];//记rl[i] ...
- BZOJ 2303 方格染色(带权并查集)
要使得每个2*2的矩形有奇数个红色,如果我们把红色记为1,蓝色记为0,那么我们得到了这2*2的矩形里的数字异或和为1. 对于每个方格则有a(i,j)^a(i-1,j)^a(i,j-1)^a(i-1,j ...
- POJ1703带权并查集(距离或者异或)
题意: 有两个黑社会帮派,有n个人,他们肯定属于两个帮派中的一个,然后有两种操作 1 D a b 给出a b 两个人不属于同一个帮派 2 A a b 问a b 两个人关系 输出 同一个帮派 ...
- POJ1988(带权并查集,搬砖块)
题意: 可以这样理解,有n快方形积木,一开始都是单独的放到哪,然后有两种操作 1 M a b 把a所在的那一堆落到b所在那一堆的上面(一开始自己是一堆) 2 C a 问a下面有多少个积木 ...
- LA3027简单带权并查集
题意: 有n个点,一开始大家都是独立的点,然后给出一些关系,a,b表示a是b的父亲节点,距离是abs(a-b)%1000,然后有一些询问,每次询问一个节点a到父亲节点的距离是多少? 思路: ...
最新文章
- 3.request response
- 求1 + 2 + 3...+ n的和
- java 设置panel背景图片_jpanel设置背景图片的二个小例子
- mysql也能注册到eureka_为什么我的服务提供者和消费者都注册不到eureka注册中心?...
- html5 页面 参数传递,详解html中页面跳转传递参数的问题
- 当初阿里巴巴、百度、美团都差点错过的架构,现在用起来真香!
- Struts2 用 s:if test 判断属性和字符串相等时 注意双引号和单引号的使用 《转》...
- javaweb(02) JavaScript基础知识
- 多线程之Thread类
- 父游标、子游标及共享游标
- C语言如何制作dIL文件,C语言学习笔记———指针
- Android Studio的单元测试
- 模拟退火(SA)算法实例介绍(JAVA)
- 基于pygame的小游戏开发
- 安卓端使用MT终端管理器crontab设置定时任务
- Mac技巧:新手必看Macbook快捷键使用大全
- pandas 的基本使用
- ShaderJoy —— 心形爆炸烟花效果【GLSL】
- HTML打开网页自动播放音乐
- 高级Java程序员值得拥有的10本书
热门文章
- [转]四种π型RC滤波电路
- mysql的主从(AB)复制
- SilverLight学习笔记--实际应用(一)(4):手把手建立一个Silverlight应用程序之同步数据校验1...
- Python中利用*打印不同的三角形
- mysql主库从库在同一台服务器_MySQL_MySQL 数据库两台主机同步实战(linux),当一个从服务器连接到主服务 - phpStudy...
- 如何查看一个组件的 classid是多少_如何快速查看胎压?胎压多少才正常?带您全面了解爱车的轮胎...
- 现货黄金短线下破1760美元/盎司
- SAP License:财务帐与后勤不一致情况
- SAP License:满足管理三重属性 ERP发展专业化是方向
- 【Tomcat】安装Tomcat服务器Tomcat的目录结构