[HNOI2005]狡猾的商人 带权并查集
来源:互联网 发布:淘宝店铺综合排名查询 编辑:程序博客网 时间:2024/05/20 16:10
给定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"); }}
阅读全文
0 0
- 1202: [HNOI2005]狡猾的商人 带权并查集
- 1202: [HNOI2005]狡猾的商人 带权并查集
- bzoj1202 [HNOI2005]狡猾的商人 (带权并查集)
- [HNOI2005]狡猾的商人 带权并查集
- 【bzoj 2102】 [HNOI2005]狡猾的商人 带权并查集维护区间和
- [BZOJ]1202: [HNOI2005]狡猾的商人 带权并查集
- bzoj 1202: [HNOI2005]狡猾的商人(带权并查集)
- bzoj1202: [HNOI2005]狡猾的商人(带权并查集)
- BZOJ 1202: [HNOI2005]狡猾的商人 带权并查集
- 【带权并查集】BZOJ1202(HNOI2005)[狡猾的商人]题解
- [BZOJ1202][HNOI2005][并查集]狡猾的商人
- 【BZOJ1202】【HNOI2005】狡猾的商人 并查集
- BZOJ 1202 HNOI2005 狡猾的商人 并查集
- BZOJ1202 [HNOI2005]狡猾的商人(并查集)
- 【bzoj1202】 HNOI2005狡猾的商人 并查集
- bzoj 1202 [HNOI2005]狡猾的商人|并查集
- [HNOI2005]狡猾的商人(并查集维护前缀和)
- BZOJ1202: [HNOI2005]狡猾的商人 并查集
- 1108链表
- C#读、写、删除注册表
- xml与json转换工具java版
- javascript中call、apply、bind方法的使用
- OBJ(3D模型)文件格式
- [HNOI2005]狡猾的商人 带权并查集
- Tensorflow进行简单的神经网络的尝试(建造神经网络)
- Navicat for MySQL 连接虚拟机上的MYSQL
- 在写邮箱模板页面兼容手机邮箱客户端时注意几点
- 微秒, 纳秒,毫秒, 时间单位换算[转]
- 5.4
- SSL2844 2017年11月8日提高组T2 奇怪的队列(线段树贪心)
- 程序出错
- [备忘录]-Nginx配置文件详解