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. ajax和sap以及网络安全

    1.sap(single page  applaction)一个页面通过众多ajax请求完成的一个app 优点是:减少页面跳转,UI公用部分的重复加载 缺点: 1.ajax过多的请求,对服务器性能有所 ...

  2. volatile关键字及编译器指令乱序总结

    本文简单介绍volatile关键字的使用,进而引出编译期间内存乱序的问题,并介绍了有效防止编译器内存乱序所带来的问题的解决方法,文中简单提了下CPU指令乱序的现象,但并没有深入讨论. 以下是我搭建的博 ...

  3. AseBulkCopy 若干问题的解决方法

    场景:数据库 Ase 15.0, Ado.net客户端15.7  Sybase.AdoNet4.AseClient 错误1:使用Transaction报错 错误2: 存储过程"sp_drv_ ...

  4. Windows平台下Git服务器搭建

    第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述. 第三步:配置Java环境变量. 右键”计算机” => ”属性” = ...

  5. 初始化git远程仓库步骤

    Git global setup git config --global user.name "bingo" git config --global user.email &quo ...

  6. AWS-CDH5.5安装 CM配置节点

    在CM节点上进行安装时出现错误: ================================================================================ Pa ...

  7. Making the Newsfeed web part available outside of My Sites in SharePoint 2013 分类: Sharepoint 2015-07-07 19:29 4人阅读 评论(0) 收藏

    The Newsfeed is a key piece in SP2013's approach to social computing. It appears on the landing page ...

  8. listview指定某item的点击效果

    需求:listview的某些item能够点击,需要点击效果,有些item不能点击,需要屏蔽点击效果. 实现: 1.layout: <ListView android:id="@+id/ ...

  9. Spring IOC 依赖注入的两种方式XML和注解

    依赖注入的原理 依赖注入的方式---XML配置 依赖注入的方式---注解的方式 Spring 它的核心就是IOC和AOP.而IOC中实现Bean注入的实现方式之一就是DI(依赖注入). 一 DI的原理 ...

  10. android editText 监听事件

    在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:sing ...