并查集-POJ1182食物链
来源:互联网 发布:十大最帅天刀捏脸数据 编辑:程序博客网 时间:2024/05/01 06:58
第一次接触到并查集+分类的形式, 方法是**** 记录节点 x 和祖先的相对关系 **** 来表示集合
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include <algorithm>#define ll long long#define eps 1e-8#define ms(x,y) (memset(x,y,sizeof(x)))#define fr(i,x,y) for(int i=x;i<=y;i++)using namespace std;const int maxn=5e4+10;int fa[maxn],ra[maxn];void unset(int n){ fr(i,1,n) fa[i]=i; ms(ra,0);}int unfind(int x){ if(x!=fa[x]) { int fx=unfind(fa[x]); ra[x]=(ra[x]+ra[fa[x]])%3; fa[x]=fx; } return fa[x];}bool un(int x,int y,int type){ int fx,fy; fx=unfind(x); fy=unfind(y); if(fx==fy) { if((ra[y]-ra[x]+3)%3!=type)return 1; else return 0; } fa[fy]=fx; ra[fy]=(ra[x]-ra[y]+type+3)%3; return 0;}int main(){ int n,k; scanf("%d%d",&n,&k); unset(n); int ans=0; fr(i,1,k) { int d,x,y; scanf("%d%d%d",&d,&x,&y); if(x>n||y>n||(x==y&&d==2)) ans++; else if(un(x,y,d-1)) ans++; } cout<<ans<<endl;}
0 0
- 食物链 POJ1182 -- 并查集
- poj1182 食物链 (并查集)
- poj1182 并查集 食物链
- poj1182食物链 并查集
- 并查集-POJ1182食物链
- POJ1182 - 食物链 - 并查集
- 并查集 食物链 POJ1182
- poj1182 食物链(并查集)
- POJ1182 食物链 并查集
- Poj1182食物链 (并查集)
- POJ1182 食物链(并查集)
- 【并查集】:poj1182,食物链
- POJ1182 食物链(并查集)
- POJ1182 食物链 并查集
- poj1182 食物链[并查集]
- poj1182 食物链(并查集)
- POJ1182 食物链【并查集】
- poj1182食物链(种类并查集)
- 工厂模式及C++代码实现
- 告别快餐生活,个人家居厨师装备展示
- 传智基础与加强day08
- 静态连接库与动态链接库
- MySQL的SQL优化思路
- 并查集-POJ1182食物链
- UC编程01-预处理
- java当中异常_多态相关测试
- 数据库 索引的优缺点
- 在Struts2中jsp前台传值到action后台的方法
- 值传递与引用传递2
- 基于STM32F103RBT6 的CAN双机通讯成功案例工程下载
- 怎么让你的家庭电脑变身网站服务器(IT男成长记)
- 传智基础与加强day09(前段时间复习与回顾)