题目链接:http://poj.org/problem?id=1182

再次熟练种类并查集,又积累点经验,和技巧,rank 0 2 1

先计算father[x] ,再更新rank[x];

#include <stdio.h>

int father[];
int rank[]; int Find_Set (int x)
{
int tmp;
if(x!=father[x])
{
tmp = father[x];
father[x] = Find_Set(father[x]); ///一定是先Find_Set,再计算rank,我这里一不小心就WA了,你必须是找到他的父节点的全值,才能计算x的权值.
rank[x] = (rank[x]+rank[tmp])%;
}
return father[x];
} int main()
{
int N,M;
scanf("%d%d",&N,&M);
for(int i=; i<=N; i++)
{
rank[i] = ;
father[i] = i;
} int ans = ;
for(int i=; i<M; i++)
{
int flag,x,y;
scanf("%d%d%d",&flag,&x,&y); if((flag==&&x==y)||x>N||y>N)
{
ans++;
continue;
}
int fx = Find_Set(x);
int fy = Find_Set(y);
if(flag==)
{
if(fx==fy)
{
if(rank[x]!=rank[y])
ans++;
}
else
{
father[fy] = fx;
rank[fy] = (rank[x]-rank[y]+)%; ///加上3,也没什么重要的含义咯,会模掉,k-0+3%3
}
}
else
{
if(fx==fy)
{
if(rank[x]!=(rank[y]+)%) ///可以吃,关系只相差1
ans++;
}
else
{
father[fy] = fx;
rank[fy] = (rank[x]-rank[y]+)%; ///合并,+2没什么含义咯,这样理解,就是说,0与0,下一个就是2啦,0吃2,2吃1,1吃0
}
}
}
printf("%d\n",ans);
return ;
}

Poj(1182),种类并查集的更多相关文章

  1. Poj(1703),种类并查集

    题目链接:http://poj.org/problem?id=1703 已经不是第一次接触种类并查集了,直到今天才搞懂. 感谢红黑联盟,感谢杰哥!!! 每个节点只要关系确定,不管是不是同一个集合里面, ...

  2. C - BLG POJ - 1417 种类并查集加dp(背包)

    思路:刚看这道题感觉什么都不清楚,人物之间的关系一点也看不出来,都不知道怎么写,连并查集都没看出来,但是你可以仔细分析一下,当输入字符串为“yes”的时候,我们设输入的值为x和y,当x为天使是则由题可 ...

  3. POJ 1182 食物链 [并查集 带权并查集 开拓思路]

    传送门 P - 食物链 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit  ...

  4. poj 1182 (关系并查集) 食物链

    题目传送门:http://poj.org/problem?id=1182 这是一道关系型并查集的题,对于每个动物来说,只有三种情况:同类,吃与被吃: 所以可以用0,1,2三个数字代表三种情况,在使用并 ...

  5. poj 1182 食物链 并查集 题解《挑战程序设计竞赛》

    地址 http://poj.org/problem?id=1182 题解 可以考虑使用并查集解决 但是并不是简单的记录是否同一组的这般使用 每个动物都有三个并查集 自己 天敌 捕食 并查集 那么在获得 ...

  6. POJ 1182 食物链(并查集的使用)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 81915   Accepted: 24462 Description ...

  7. poj 1182 食物链 并查集的又一个用法

    食物链   Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 41584   Accepted: 12090 Descripti ...

  8. POJ 1182食物链(并查集)

    食物链Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 85474 Accepted: 25549Description动物王国中有三 ...

  9. POJ - 1182 食物链 并查集经典

    思路:设r(x)表示节点x与根结点的关系,px表示x的根结点.记录每个节点与其父节点的关系,就能很方便知道每个节点以及和它的父节点的关系. struct node{ int par; //父亲节点 i ...

随机推荐

  1. 《高性能mysql》笔记

    组合索引和sql中的顺序有关 单列索引和sql中的顺序无关

  2. spring boot 入参方式

    方式: 1).直接写,如public User index2(String name) 2).@RequestParam 与直接写的区别是,可以写默认值. 3).@RequestBody 因为传入的是 ...

  3. Python中的None与 NULL(即空字符)的区别

    None是Python的特殊类型,NoneType对象,它只有一个值None. 它不支持任何运算也没有任何内建方法. None和任何其他的数据类型比较永远返回False. None有自己的数据类型No ...

  4. MSF利用ms17-010漏洞过程记录

    1.使用网上以上一个监测工具,扫描出存在ms17-010的主机地址 2.在kali中使用MSF进行检测,存在mf17-010漏洞 msf > use auxiliary/scanner/smb/ ...

  5. my17_Mysql 主从切换

    注意事项: 从库提升为主库read_only要设置为OFF原主库改为从库后,read_only要设置ONread_only=ON并不能对root生效,确保root不会进行数据写入从主库进行 flush ...

  6. 2018.6.1学习CSS5里顺丰盒子小问题

    在制作下面这样的小盒子时 编写的代码 首先要对li元素设置浮动. 在设置这个li元素下面的a元素时, 因为没有转行内块,inline-block,结果显示出来的页面,鼠标在经过这个选择时(:hover ...

  7. JS判断所有IE浏览器所有版本

    原来判断IE浏览器版本很简单,但是随着版本的升级,navigator.userAgent显示的信息也不一样:下图是IE11显示的信息

  8. python的基础数据类型

    Python基础数据类型 定义: int    => 数字类型 str   => 字符串数据类型 bool  =>布尔值,True False list 列表,用来存放大量数据  [ ...

  9. 修改linux文件权限命令

    修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文 ...

  10. ASP .NET 404 Not Found fontawesome-webfont.woff?v=4.0.3

    解决Web部署 svg/woff/woff2字体 404错误最近项目中用到了fontawesome-webfont.svg等字体.部署项目后,发现没有<,+等符号,字体也不对,发现浏览器总是报找 ...