博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2024 食物链
阅读量:6756 次
发布时间:2019-06-26

本文共 1231 字,大约阅读时间需要 4 分钟。

并查集的题

关于带有多个相对集合的全集,我们可以多开几倍的空间。每一倍的元素表示这个当前里的相对元素


#include
#include
#include
using namespace std;int f[600000];int find(int x){ if(f[x]==x) return x; return f[x]=find(f[x]);}int _union(int x,int y){ int f1=find(x),f2=find(y); f[f1]=f2;}int main(){ int n,k; scanf("%d%d",&n,&k); int a,b,c; for(int i=1;i<=3*n;i++) f[i]=i; int t=0; for(int i=1;i<=k;i++) { scanf("%d%d%d",&a,&b,&c); if(b>n||c>n) { t+=1; continue; } if(a==1) { if(find(b+n)==find(c)||find(b+2*n)==find(c)) { t+=1; continue; } _union(b,c); _union(b+n,c+n); _union(b+2*n,c+2*n); } if(a==2) { if(b==c) { t+=1; continue; } if(find(b+n)==find(c)||find(b)==find(c)) { t+=1; continue; } _union(b+2*n,c); _union(b,c+n); _union(b+n,c+2*n); } } printf("%d",t);}

肯定有一些自恃NB的不会看的

转载于:https://www.cnblogs.com/Lance1ot/p/8643628.html

你可能感兴趣的文章
NAS系统 选购必备特性
查看>>
thymeleaf入门
查看>>
一个痛苦的过程
查看>>
TableRow中的内容溢出
查看>>
JVM系列三:JVM参数设置、分析
查看>>
json小测试
查看>>
鸟哥私房菜重温笔记4
查看>>
DBA眼中的自己和开发者眼中的DBA
查看>>
shell脚本的测试用法
查看>>
iOS 各种验证码
查看>>
我的友情链接
查看>>
我所理解的OOP——UML六种关系
查看>>
php--抓屏
查看>>
安装和测试scvmm 2012R2评估版--2scvmm 2012 R2的安装
查看>>
网站搬家MySql出现#1036 - Table ' ' is read only 错误提示
查看>>
关于我
查看>>
c++实现广义表
查看>>
centos7 安装apache+mysql+php环境
查看>>
Django 安全策略的 7 条总结!
查看>>
SylixOS网卡驱动调用篇
查看>>