题意: 一圈座位有n个,给出m组序号之间的关系,比如,1 2 150 代表2号坐在1号位置序号+150,看m组数据有多少组冲突的。
思路: 带权并查集模板。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<vector>
#include<stdlib.h>
using namespace std;
#define N 50010
int f[N],n,m,val[N],cnt;
int getf(int v)
{
if(f[v]==v)
return v;
int t=f[v];
f[v]=getf(f[v]);/*压缩路径*/
val[v]+=val[t];/*记录当前节点到祖先节点的权值和(在压缩路径的过程中,遍历到他的祖先,加上权值)*/
return f[v];
}
void marge(int u,int v,int s)
{
int t1=getf(u),t2=getf(v);
if(t1!=t2)
{
f[t2]=t1;/*搞清楚节点之间的父子关系!!!*/
val[t2]=val[u]-val[v]+s;/*向量*/
}
else if(val[v]!=val[u]+s)/*祖先相同,之间距离关系也应该正确,否则矛盾*/
cnt++;
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
cnt=0;
for(int i=1; i<=n; i++)
f[i]=i,val[i]=0;
int v,u,s;
for(int i=1; i<=m; i++)
{
scanf("%d%d%d",&u,&v,&s);
marge(u,v,s);
}
printf("%d\n",cnt);
}
return 0;
}
带权并查集 HDU - 3047的更多相关文章
-
HDU 3047 Zjnu Stadium(带权并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=3047 题意: 给出n个座位,有m次询问,每次a,b,d表示b要在a右边d个位置处,问有几个询问是错误的. 思路: ...
-
【带权并查集】HDU 3047 Zjnu Stadium
http://acm.hdu.edu.cn/showproblem.php?pid=3047 [题意] http://blog.csdn.net/hj1107402232/article/detail ...
-
HDU 3047 带权并查集 入门题
Zjnu Stadium 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3047 Problem Description In 12th Zhejian ...
-
hdu 5441 Travel 离线带权并查集
Travel Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5441 De ...
-
HDU 3038 - How Many Answers Are Wrong - [经典带权并查集]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
-
Valentine&#39;s Day Round hdu 5176 The Experience of Love [好题 带权并查集 unsigned long long]
传送门 The Experience of Love Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
-
hdu 1829-A Bug&#39;s LIfe(简单带权并查集)
题意:Bug有两种性别,异性之间才交往, 让你根据数据判断是否存在同性恋,输入有 t 组数据,每组数据给出bug数量n, 和关系数m, 以下m行给出相交往的一对Bug编号 a, b.只需要判断有没有, ...
-
HDU 5176 The Experience of Love 带权并查集
The Experience of Love Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
-
HDU 1829 A Bug&#39;s Life 【带权并查集/补集法/向量法】
Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes ...
随机推荐
-
iOS: How To Make AutoLayout Work On A ScrollView
iOS: How To Make AutoLayout Work On A ScrollView Posted on June 11th, 2014 Ok, I’ll admit. I’ve been ...
-
Recover Rotated Sorted Array
Given a rotated sorted array, recover it to sorted array in-place. Clarification What is rotated arr ...
-
ios PromiseKit
简介: 高级开发是高度异步的,PromiseKit收集了一些帮助函数,让我们开发过程中使用的典型异步模式更加令人愉悦. 1.通过pod安装promisekit: 2. promise.h介绍 @imp ...
-
进程与线程(二) java进程的内存模型
从我出生那天起,我就知道我有个兄弟,他桀骜不驯,但实力强悍 ,人家都叫它C+++ ----java 上回说到了,C进程的内存分配,那么一个java运行过程也是一个进程,java内 ...
-
socket.io 实例
//引用 var io = require('socket.io')(server); //server io.on('connection', function(socket) { // ...
-
[置顶] Android项目组织和代码重用
在Android应用开发过程中,只要涉及两个或以上人的开发,就需要考虑分工和代码的组织和重用问题. 代码重用有三种方式: 1.APK: 2.JAR:通过Libs/ 和Build path集成,缺点是不 ...
-
Linux mysql 联表查询
在rhce考试题中,第21.22题为数据库查询题 题目: 在system1上创建一个Maria DB数据库,名为Contacts,要求: 数据库应该包含来自数据库users.mdb的内容,数据库只能被 ...
- Vue 点击波浪特效指令
-
django通用分页封装
__author__ = 'Administrator'from django.utils.safestring import mark_safe class Page: def __init_ ...
-
继承spring的validator接口,实现对数据的校验
在org.springframework.validation这个包中提供了一些对数据校验的方法,其中Validator接口是其中的一个. 现在用Validator接口,完成对数据的校验. 第一步:先 ...