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. openxml(二) 添加页眉,页脚

    openxml 中 word 文档的结构是如下图: 其中,页眉是 header,属于headerpart 部件,页脚是footer,属于footerpart 部件,图上还有其他的东西,之后会一一介绍. ...

  2. .NET跨平台之mac 下vs code 多层架构编程

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入,申请备注填写姓名+技术+工作年限) Q  Q:408365330     E-Mail:eg ...

  3. C# 中正确实现 IDisposable 接口

    作用 此接口的主要用途是释放非托管资源. 当不再使用托管对象时,垃圾回收器会自动释放分配给该对象的内存. 但无法预测进行垃圾回收的时间. 另外,垃圾回收器对窗口句柄或打开的文件和流等非托管资源一无所知 ...

  4. SAP验证

    需求:财务录费用凭证,检查科目6601001-6601999 & 成本中心为1000R001 - 1000R999,工单不能为空 GGB0 1.选择财务凭证->行项目->新建确认' ...

  5. WordPress网站搭建

    . 1.进入 var/www/html中放入里的文件 2.. 安装http php php-sql [root@jw38 yum.repos.d]# systemctl restart httpd.s ...

  6. Error 403--Forbidden

    转自他人:From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:10.4.4 403 ForbiddenThe server understood ...

  7. CSS设置DIV背景色渐变

    div{ width: 200px; height: 200px; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=, ...

  8. 苹果下如果安装nginx,给nginx安装markdown第三方插件

    用brew install nginx 这样安装的是最新版的nginx, 但是在有些情况下,安装第三方插件需要特定的版本,更高一级的版本可能装不上. 它的原理是下载安装包进行自动安装,建立软链,这样就 ...

  9. 荣品RP4412开发板烧写内核cannot load出错的原因

    问:荣品RP4412开发板烧写必须要配置Xmanager吗? 现在我烧写内核出现这个错误是什么原因呢? 答:4412文件夹下没有zImage这个文件, 你打开4412这个文件夹. 你都拼写错了, zI ...

  10. PV与并发之间换算的算法换算公式

    并发连接数 = PV / 统计时间 * 页面衍生连接次数 * http响应时间 * 因数 / web服务器数量 PV = 并发连接数 * 统计时间 * web服务器数量/ 页面衍生连接次数 / htt ...