POJ 1182

把一个点拆成x,x+n,x+2*n,x吃y可以表示认为x,y+n是一类的,x+n,y+2*n是一类,x+2*n,y是一类。

 #include <cstdio>

 const int Maxn=;
int F[Maxn*],n,k,Type,x,y,Ans;
int Get(int x) {return F[x]==x?x:F[x]=Get(F[x]);}
int main()
{
scanf("%d%d",&n,&k);
for (int i=;i<=*n;i++) F[i]=i;
for (int i=;i<=k;i++)
{
scanf("%d%d%d",&Type,&x,&y);
if (x>n || y>n || (x==y && Type==))
{
Ans++;
continue;
} if (Type==)
{
if (Get(x)==Get(y+n) || Get(x)==Get(y+*n))
{
Ans++;
continue;
}
F[Get(x)]=Get(y);
F[Get(x+n)]=Get(y+n);
F[Get(x+*n)]=Get(y+*n);
} else
{
if (Get(x)==Get(y) || Get(x)==Get(y+*n))
{
Ans++;
continue;
}
F[Get(x)]=Get(y+n);
F[Get(x+n)]=Get(y+*n);
F[Get(x+*n)]=Get(y);
}
}
printf("%d\n",Ans);
return ;
}

POJ 1182

HDU 3047

Sum[x]表示fa[x]和x的差. 带权并查集

#include <cstdio>

int Sum[],Father[],n,m,Count,u,v,w;
int Get_Father(int x)
{
if (x==Father[x]) return x;
int Tmp=Get_Father(Father[x]);
Sum[x]+=Sum[Father[x]];
return Father[x]=Tmp;
}
int main()
{
while (scanf("%d%d",&n,&m)!=EOF)
{
for (int i=;i<=n;i++) Father[i]=i,Sum[i]=;
Count=;
for (int i=;i<=m;i++)
{
scanf("%d%d%d",&u,&v,&w);
int fu=Get_Father(u),fv=Get_Father(v);
if (fu!=fv)
{
Father[fu]=fv;
Sum[fu]=Sum[v]+w-Sum[u];
} else
{
if (Sum[u]-Sum[v]!=w)
Count++;
}
}
printf("%d\n",Count);
}
return ;
}

HDU 3047

BZOJ 1202

带权并查集

 #include <cstdio>
int KASE,n,m,u,v,w;
int Father[],Sum[];
int Get_Father(int x)
{
if (x==Father[x]) return x;
int Tmp=Get_Father(Father[x]);
Sum[x]+=Sum[Father[x]];
Father[x]=Tmp;
return Tmp;
}
int main()
{
scanf("%d",&KASE);
for (int Kase=;Kase<=KASE;Kase++)
{
scanf("%d%d",&n,&m); bool flag=false;
for (int i=;i<=n;i++) Father[i]=i,Sum[i]=;
for (int i=;i<=m;i++)
{
scanf("%d%d%d",&u,&v,&w);
int fu=Get_Father(u-),fv=Get_Father(v);
if (fu==fv)
{
if (Sum[u-]-Sum[v]!=w)
{
flag=true;
break;
}
} else
{
Father[fu]=fv;
Sum[fu]=Sum[v]-Sum[u-]+w;
}
}
puts(flag?"false":"true");
}
return ;
}

BZOJ 1202

NOIP 考前 并查集复习的更多相关文章

  1. 2019牛客第八场多校 E_Explorer 可撤销并查集(栈)+线段树

    目录 题意: 分析: @(2019牛客暑期多校训练营(第八场)E_Explorer) 题意: 链接 题目类似:CF366D,Gym101652T 本题给你\(n(100000)\)个点\(m(1000 ...

  2. Codevs 3287 货车运输 2013年NOIP全国联赛提高组(带权LCA+并查集+最大生成树)

    3287 货车运输 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description A 国有 n 座 ...

  3. 2018.11.04 NOIP训练 小水塘(并查集)

    传送门 这是复习普及组的时候做过的题了. 之前一直觉得很难码没有去做. 现在发现可以用并查集直接水过去. 其实就是把题目中说的连通的部分的面积用带权并查集维护一下就行了. 代码: #include&l ...

  4. NOIp 2015信息传递【tarjan/拓扑/并查集】

    一道好的NOIp题目,在赛场上总能用许多算法A掉.比如这道和关押罪犯. 题目传送门 法一:tarjan在有向图中跑最小环 有人从别人口中得知自己信息,等效于出现了一个环.于是 这就变成了一个有向图ta ...

  5. [NOIP摸你赛]Hzwer的陨石(带权并查集)

    题目描述: 经过不懈的努力,Hzwer召唤了很多陨石.已知Hzwer的地图上共有n个区域,且一开始的时候第i个陨石掉在了第i个区域.有电力喷射背包的ndsf很自豪,他认为搬陨石很容易,所以他将一些区域 ...

  6. 【NOIP模拟_54测试】【并查集】【二进制】【搜索】【区间序列类】

    第一题 Mushroom的序列 大意: 给一个序列,求一段连续最长区间满足:最多改变一个数,使得区间是严格的上升子序列. 解: 直接扫描一遍,记一个最长上升子序列编号.然后从每一个编号为1 的点来判断 ...

  7. 2018.11.02 NOIP模拟 飞越行星带(最小生成树/二分+并查集)

    传送门 发现题目要求的就是从下到上的瓶颈路. 画个图出来发现跟去年noipnoipnoip提高组的奶酪差不多. 于是可以二分宽度+并查集检验,或者直接求瓶颈. 代码

  8. 并查集:POJ 1182 食物链 复习

    #include <iostream> #include <algorithm> #include <cstring> #include <cstdlib&g ...

  9. 【2-SAT】【并查集】NOIp模拟题 植树方案 题解

        一个类似2-SAT的思想,但是简化了很多.只需要用到并查集实现. 题目描述 企鹅国打算种一批树.所谓树,就是由$N$个结点与$N-1$条边连接而成的连通无向图.企鹅国的国王对于这些树有下列要求 ...

随机推荐

  1. MySQL全文检索

    参考一:http://www.cnblogs.com/feichexia/archive/2012/06/09/2543049.html

  2. 【译】Learn ES2015——箭头函数

    原文:https://babeljs.io/learn-es2015/ 理解也许有偏差,欢迎指正 箭头函数 不同于函数,箭头函数和包裹它的代码拥有同一个this.如果一个箭头函数在一个function ...

  3. 深入springMVC源码------文件上传源码解析(下篇)

    在上篇<深入springMVC------文件上传源码解析(上篇) >中,介绍了springmvc文件上传相关.那么本篇呢,将进一步介绍springmvc 上传文件的效率问题. 相信大部分 ...

  4. Leetcode 详解(ReverseWords)

    Leetcode里面关于字符串的一些问题,描述如下: Given an input string, reverse the string word by word. For example,Given ...

  5. SQL经典面试题及答案

    1.一道SQL语句面试题,关于group by表内容:2005-05-09 胜2005-05-09 胜2005-05-09 负2005-05-09 负2005-05-10 胜2005-05-10 负2 ...

  6. Nehe Opengl

    http://nehe.gamedev.net/tutorial/lessons_01__05/22004/ Nehe Opengl,据说从基础到高端进阶都是很好的教程,准备学习这个序列,顺便记录下随 ...

  7. VS 2015 localhost访问有效 改用 IP访问 400错误 invalid hostname 修改方法

    今天新起站点发现在Chrome浏览器中,通过localhost访问是有效的,但是通过本机IP甚至127.0.0.1访问无效, 报的错误是400 Bad Request Invalid HostName ...

  8. Mysql触发器示例

    begin ); ); ); then set x = (select ID from qn_huiyuan_grade g ); elseif r then set x = (select ID f ...

  9. UML 类图常用表示方法.

    UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’): 依赖:虚线+箭头(动物和空气的关系): 关联:实线+箭头(企鹅需要知道气候才迁移): 聚合:空心四边形+实线+箭头(雁群和大雁的关系 ...

  10. Bootstrap<基础十七>导航栏

    导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏在您的应用或网站中作为导航页头的响应式基础组件.导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开. ...