POJ1182 食物链 并查集
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
const int N = 100005;
int r[N], father[N];//定义一个关系数组,定义一个父亲(路径)数组;
int Find(int x);//寻找根节点,并且找这个点与根节点的关系
int main()
{
int amount, sentence, relation, a, b, ans;
ans=0;
scanf("%d%d", &amount, &sentence);
for(int i=0; i<=amount; i++)//初始化,每个点的父节点都是他自己,每个店与自己的关系都是0同类
{
father[i]=i;
r[i]=0;
}
while(sentence--)//说了几句话
{
scanf("%d%d%d", &relation, &a, &b);
int ra=Find(a);//找根节点
int rb=Find(b);//找根节点
//注意这里是if-else if语句不是,if-else语句
if(a>amount||b>amount||a<=0||b<=0||(relation==2&&a==b))
ans++;//越界或者关系是捕食但a和b相等是同类
else if(ra==rb&&(relation-1+r[b])%3!=r[a])
ans++;//若根节点相同,但是到根节点的关系不同,
else if(ra!=rb)//若根节点不同
{
father[ra]=rb;//合并两个集合,路径压缩
r[ra]=((relation-1)-r[a]+r[b]+3)%3;//关系压缩
}
}
printf("%d\n", ans);
return 0;
}
int Find(int x)
{
int k=father[x];
if(father[x]!=x)
{
father[x]=Find(father[x]);
r[x]=(r[k]+r[x])%3;
}
return father[x];
}
POJ1182 食物链 并查集的更多相关文章
- POJ-1182 食物链 并查集(互相关联的并查集写法)
题目链接:https://cn.vjudge.net/problem/POJ-1182 题意 中文题目,就不写了哈哈 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃 ...
- [poj1182]食物链(并查集+补集)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64841 Accepted: 19077 Description ...
- POJ-1182 食物链---并查集(附模板)
题目链接: https://vjudge.net/problem/POJ-1182 题目大意: 中文题,不多说. 思路: 给每个动物创建3个元素,i-A, i-B, i-C i-x表示i属于种类x,并 ...
- poj1182食物链--并查集
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种.有人用两种说 ...
- 编程算法 - 食物链 并查集 代码(C)
食物链 并查集 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 有N仅仅动物, 分别编号为1,2,...,N. 全部动物都属于A,B,C中的一种 ...
- POJ1182:食物链(并查集)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 94930 Accepted: 28666 Description ...
- 【poj1182】食物链--并查集扩展域
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 109341 Accepted: 33191 Description 动物 ...
- POJ-1182 分组并查集
今天刚发现,之前做的并查集只是贴模板基本就能过,题意改变一点,自己还是不懂,其实我还没入门呢... 题意:食物链,A吃B,B吃C,C吃A,输入m组数据: 1 a b:a 和 b 是同一类 2 a b: ...
- POJ 1182 (经典食物链 /并查集扩展)
(參考他人资料) 向量偏移--由"食物链"引发的总结 http://poj.org/problem?id=1182这道食物链题目是并查集的变型.非常久曾经做的一次是水过的,这次 ...
随机推荐
- 电路板上为何要有孔洞?何谓PTH/NPTH/vias(导通孔)
推荐文章:PCBA大讲堂:用数据比较OSP及ENIG表面处理电路板的焊接强度 如果你有机会拿起一片电路板,稍微观察一下会发现这电路板上有着许多大大小小的孔洞,把它拿起来对着天花板上的电灯看,还会发 ...
- php匿名函数和闭包函数及use关键字传参及Closure匿名函数类
php闭包函数用use传参有什么意义?答:use引用外层变量,比如全局变量 Closure,匿名函数,是php5.3的时候引入的,又称为Anonymous functions.字面意思也就是没有定义名 ...
- js删除cookie的方法
以上图片有两种方法,推荐第二种
- [译]GLUT教程 - 动画
Lighthouse3d.com >> GLUT Tutorial >> Basics >> Animation 前面章节我们已经创建了一个白色三角形的窗体.还没到 ...
- 智能路由器开发指南_book
最近购得一个openwrt书籍<智能路由器开发指南>,作者张永智. Building a smart router with openwrt 作者网址:http://openwrt.bjb ...
- 在Windows 10中开启开发者模式
及以上)的电脑上使用Visual Studio来开发Windows 10或者Windows 8.1的应用,你可能会遇到下面的问题,要求你开启开发者模式. 于是你跑到设置里面,把开发者模式打开: 结果你 ...
- phpStorm pycharm编辑器主题修改,自定义颜色
新的启程 注: 本人小菜鸟一枚,内容也是从其他博客中借鉴的,谨以此作为写博客开端. phpstorm修改主题: 1. phpstorm主题下载 http://www.phpstorm-themes.c ...
- vue2+element组件库开发
Vue2:https://cn.vuejs.org/v2/guide/single-file-components.html element组件库:http://element-cn.eleme.io ...
- poj2115[扩展欧几里德]
C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22260 Accepted: 6125 Descr ...
- IIS架构介绍
IIS7及以上版本提供的请求-处理架构包括以下内容: Windows Process Activation Service(WAS)可以让站点支持更多协议,不仅仅是HTTP和HTTPS 可以通过增加或 ...