pku 1182(种类并查集)
题目链接:http://poj.org/problem?id=1182
解题思路来自discuss:http://poj.org/showmessage?message_id=152847
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 50050
int parent[MAXN];
int kind[MAXN];
int n,m,tag; void Initiate()
{
for(int i=;i<=n;i++){
parent[i]=i;
}
memset(kind,,(n+)*sizeof(kind[]));
} int Find(int x)
{
if(x==parent[x]){
return parent[x];
}
int tmp=Find(parent[x]);
kind[x]=(kind[x]+kind[parent[x]])%;
return parent[x]=tmp;
} void Union(int a,int b)
{
int r1=Find(a),r2=Find(b);
parent[r1]=r2;
kind[r1]=(kind[b]-kind[a]++tag-)%;
} int main()
{
// freopen("1.txt","r",stdin);
int a,b,ans=;
scanf("%d%d",&n,&m);
Initiate();
while(m--){
scanf("%d%d%d",&tag,&a,&b);
if(a>n||b>n||(tag==&&a==b)){ ans++;continue; }
if(Find(a)!=Find(b)){
Union(a,b);
}else {
if((kind[a]-kind[b]+)%!=(tag-))
ans++;
}
}
printf("%d\n",ans);
return ;
}
pku 1182(种类并查集)的更多相关文章
- Poj(1182),种类并查集
		
题目链接:http://poj.org/problem?id=1182 再次熟练种类并查集,又积累点经验,和技巧,rank 0 2 1 先计算father[x] ,再更新rank[x]; #inclu ...
 - pku 1703(种类并查集)
		
题目链接:http://poj.org/problem?id=1703 思路;个人觉得本质上还是和带权并查集一样的,只不过多了一个MOD操作,然后就是向量关系图稍微改动一下就变成种类并查集了,对于本题 ...
 - POJ 1182食物链(分集合以及加权两种解法) 种类并查集的经典
		
题目链接:http://icpc.njust.edu.cn/Problem/Pku/1182/ 题意:给出动物之间的关系,有几种询问方式,问是真话还是假话. 定义三种偏移关系: x->y 偏移量 ...
 - poj 1182:食物链(种类并查集,食物链问题)
		
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44168 Accepted: 12878 Description ...
 - poj 1182 食物链(种类并查集 ‘初心者’)
		
题目链接:http://poj.org/problem?id=1182 借着这题可以好好理解一下种类并查集,这题比较简单但挺经典的. 题意就不解释了,中问题. 关于种类并查集结局方法也是挺多的 1扩增 ...
 - hdu 1182 A Bug's Life(简单种类并查集)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1829 题意:就是给你m条关系a与b有性关系,问这些关系中是否有同性恋 这是一道简单的种类并查集,而且也 ...
 - 食物链(带权&种类并查集)
		
食物链 http://poj.org/problem?id=1182 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9326 ...
 - poj1182(种类并查集好题)
		
不得不说,我得感谢@驱动幽灵百鬼夜行小肆,正是因为看明白了他给出的解析,我才完全弄懂种类并查集的,这里,我也不想去改其他的,就直接引用他的解题报告吧 转载:http://blog.csdn.net/c ...
 - POJ1182 食物链---(经典种类并查集)
		
题目链接:http://poj.org/problem?id=1182 食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submission ...
 
随机推荐
- Linux获取线程tid线程名
			
Linux获取线程tid线程名 1 2 3 4 5 6 //thread name char cThreadName[32] = {0}; prctl(PR_GET_NAME, (unsigned l ...
 - ioctl和unlock_ioctl的区别
			
今天调一个程序调了半天,发现应用程序的ioctl的cmd参数传送到驱动程序的ioctl发生改变.而根据<linux设备驱动>这个cmd应该是不变的.因为在kernel 2.6.36 中已经 ...
 - PB中无法插入ole控件,解决办法
			
cmd /c for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %icmd /c for %i in (%windir%\system32\ ...
 - 设置VS2010中自带的ActiveX控件测试容器TstCon
			
ActiveX控件:可以看做一个极小的服务器应用程序,他不能单独运行,需要嵌入到某个程序中才可以运行,我们可以自己写一个程序来测试自己写的程序(具体方法在下一篇文章阐述),第二种方法是利用VS(本人编 ...
 - java web.xml配置详解(转)
			
源出处:java web.xml配置详解 1.常规配置:每一个站的WEB-INF下都有一个web.xml的设定文件,它提供了我们站台的配置设定. web.xml定义: .站台的名称和说明 .针对环境参 ...
 - mongodb修改器
			
mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...
 - css3之圆角效果 border-radius
			
圆角效果 border-radius border-radius是向元素添加圆角边框. 使用方法: border-radius:10px; /* 所有角都使用半径为10px的圆角 */ border ...
 - Html5 常见的新增API详解
			
1. getElementsByClassName()方法 getElementsByClassName()方法接收一个参数,即一个包含一或多个类名的字符串,返回带有指定类的所有元素的NodeList ...
 - DataTable分组归类
			
我们在做项目的时候,经常需要根据表或DataTable中某些字段来归类,为此就写出以下方法,帮组需要的人. #region 对DataTable进行分组 + public void GroupData ...
 - SwipeBackLayout的使用方法,右滑返回
			
使用方法: 需要右滑返回的activity继承baseActivity就可以, 如: public class SettingActivity extends BaseActivity {} 为防止滑 ...