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这道食物链题目是并查集的变型.非常久曾经做的一次是水过的,这次 ...
随机推荐
- iOS开发 - 第05篇 - 项目 - 12 - 图文混排
1.首页微博文字处理 对于之前微博项目中首页:微博文字中的用户名.话题.链接等文字须要高亮显示.表情字符串须要显示相应表情. 思路: 1>之前微博中的文字使用NSString,要达到不同文字的高 ...
- Pentaho 免费版本下载地址列表
Pentaho CE(Community Edition) 免费版本下载地址列表 http://sourceforge.net/projects/pentaho/files/Pentaho 插件名称 ...
- (1) yum源配置-epel
1.获取epel地址 登录https://fedoraproject.org/wiki/EPEL/zh-cn,看“如何获取EPEL的软件包”,根据你的操作系统版本,复制对应的下载地址. 2.下载epe ...
- spring-test-dbunit的配置和使用
1.数据源配置 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" ...
- 给jquery easy-ui 添加右键菜单
版权声明:转自为EasyUI 的Tab 标签添加右键菜单
- 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作
用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...
- 【Navicat Premium】之连接Oracle数据库
1.首先,在连接之前,需要下载oracle官网提供的instantclient-basic-win32-11.2.0.1.0.zip包 官网:http://www.oracle.com/technet ...
- python之开篇---hello world!
(1)前沿 (2)python 简介 (3)python hello world 实现 (4) -------------qq:1327706646 ------------------------- ...
- zookeeper应用场景之配置文件同步
p=2628">http://www.firefoxbug.net/?p=2628
- mysql 不同库不同表字段数据复制
需求:把一个表某个字段内容复制到另一张表的某个字段. 实现sql语句1: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_fold ...