博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(并查集 建立关系)食物链 -- POJ-- 1182
阅读量:6071 次
发布时间:2019-06-20

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

链接:

http://poj.org/problem?id=1182

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#problem/E

 

 

代码:

#include
#include
#include
#include
using namespace std;#define maxn 100005#define oo 0xfffffffint n, T;int f[maxn], r[maxn];int Find(int x){ int k=f[x]; if(f[x]!=x) { f[x]=Find(f[x]); r[x]=(r[x]+r[k])%3; } return f[x];}int main(){ scanf("%d%d", &n, &T); int i, d, a, b, fa, fb, ans=0; for(i=1; i<=n; i++) { f[i]=i; r[i]=0; } while(T--) { scanf("%d%d%d", &d, &a, &b); fa=Find(a), fb=Find(b); if(a>n || b>n || (d==2&&a==b)) ans++; else if(fa==fb && (d-1+r[b])%3!=r[a]) ans++; else if(fa!=fb) { f[fa]=fb; r[fa]=((d-1)-r[a]+r[b]+3)%3; } } printf("%d\n", ans); return 0;}

 

转载于:https://www.cnblogs.com/YY56/p/4735677.html

你可能感兴趣的文章
atitit.细节决定成败的适合情形与缺点
查看>>
iOS - Library 库
查看>>
MATLAB 读取DICOM格式文件
查看>>
spring事务管理(Transaction)
查看>>
django.contrib.auth登陆注销学习
查看>>
js执行本地exe文件的3种方法
查看>>
理解B树索引
查看>>
vi编辑器的命令集合
查看>>
Mysql利用binlog恢复数据
查看>>
解决 Windows启动时要求验证
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
Gallery循环滑动
查看>>
Sql与C#中日期格式转换总结
查看>>
iOS开发流程总结
查看>>
hadoop datanode 启动出错
查看>>
js颜色拾取器
查看>>
IDEA使用(1)intellIJ idea 配置 svn
查看>>
Thread Safety in Java(java中的线程安全)
查看>>