【POJ】poj 1182(并查集)

新手必看:如何用T265和ROS实现无人机室内精准定位(附PX4参数配置) 本文详细介绍了如何使用Intel Realsense T265和ROS实现无人机室内精准定位,包括硬件准备、ROS数据流架构设计、PX4参数配置及系统验证。特别针对视觉SLAM技术在室内环境中的应用,提供了从零搭建到进阶优化的全流程解析,适合无人机开发新手快速上手。 阅读详情

 

Description

动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 
现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 
有人用两种说法对这N个动物所构成的食物链关系进行描述: 
第一种说法是"1 X Y",表示X和Y是同类。 
第二种说法是"2 X Y",表示X吃Y。 
此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。 
1) 当前的话与前面的某些真的话冲突,就是假话; 
2) 当前的话中X或Y比N大,就是假话; 
3) 当前的话表示X吃X,就是假话。 
你的任务是根据给定的N(1 <= N <= 50,000)和K句话(0 <= K <= 100,000),输出假话的总数。 

Input

第一行是两个整数N和K,以一个空格分隔。 
以下K行每行是三个正整数 D,X,Y,两数之间用一个空格隔开,其中D表示说法的种类。 
若D=1,则表示X和Y是同类。 
若D=2,则表示X吃Y。

Output

只有一个整数,表示假话的数目。

Sample Input

100 7
1 101 1 
2 1 2
2 2 3 
2 3 3 
1 1 3 
2 3 1 
1 5 5

Sample Output

3

 

这是一个并查集,但是有几个三个集合,要注意其中的关系,我们可以设总数为num, 那么如果 x 和 y 在一个根上面,我们就说这两个是同一类的,如果 x 和 y + num 在同一个根上面,我们就说x 吃 y ,如果 x 和 y + 2 * num在一个根上面,那么我们就认为 y 吃 x,那么就可以进行判断了:

 

代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int people, groups;
struct group
{
    int fa;
    int ranks;
}gro[200000];
void init( int n)///初始化函数
{
    for ( int i = 0; i < n; i++ )
    {
        gro[i].fa = i;
        gro[i].ranks = 0;
    }
}
int finds( int x )///找节点的根函数
{
    if (gro[x].fa == x )
        return x;
    else
         gro[x].fa = finds(gro[x].fa);
         return gro[x].fa;
}
void unite(int x, int y)///将两颗树连接起来
{
    x = finds(x);
    y = finds(y);
    if ( x == y ) return ;
    if ( gro[x].ranks < gro[y].ranks )
        gro[x].fa = y;
   else
    {
        gro[y].fa = x;
        if ( gro[x].ranks == gro[y].ranks ) gro[x].ranks++;
    }
}
bool same ( int x, int y )///判断两个树是否同根
{
    return finds(x) == finds(y);
}
int main()
{
    //freopen("in.txt","r",stdin);
    int num,word;
    int fir,oper,sec;
    cin >> num >> word;
    init(3*num+1);///初始化三倍的数组
    {
    int ans = 0;
    while ( word > 0 )
    {
        word--;
        scanf("%d %d %d", &oper,&fir,&sec);///用cin会超时
        fir -= 1;
        sec -= 1;
        if ( fir >= num || sec >= num || fir < 0 || sec < 0 )
        {
            ans++;continue;
        }
        if ( oper == 1)
        {
            if( ame(fir,sec+num)||same(fir,sec + 2 * num ))///如果两个可以互相攻击的话就不是同一类;
            {
                ans++;
            }
            else
            {
                unite(fir,sec);///
                unite(fir+num,sec+num);
                unite(fir + 2*num,sec+2*num);///否则的话就是fir吃sec加入,
                            ///其中包括三种情况,因为这个属于哪一组不能确定
            }
        }
        if ( oper == 2)
        {
            if(same(fir,sec)||same(fir,sec+2*num))///如果连个属于同一类或者sec吃fir的话就是假话
            {
                ans++;
            }
            else
            {
                unite(fir,sec+num);
                unite(fir+num,sec+2*num);
                unite(fir+2*num,sec);///同上,如果fir可以吃sec的话就加入,注意同上有三种情况;
            }
        }
    }
    cout << ans << endl;
}
}

 

 

 

 

 

 

Python 爬虫实战:微信搜一搜内容深度爬取(含搜索结果解析与企业级架构设计) 在信息爆炸的时代,微信搜一搜已成为海量信息获取的重要入口。无论是个人知识探索,还是企业舆情监控,掌握微信搜一搜内容的深度爬取能力具有巨大价值。本文将从基础原理到企业级实现,全面解析微信搜一搜爬虫的开发过程。 阅读详情

相关推荐

音频格式之AAC:(2)AAC封装格式ADIF,ADTS,LATM,extradata及AAC ES存储格式

本文主要1-3部分介绍AAC封装格式ADIF,ADTS和LATM,同时因为从mp4等封装容器有extradata模式,故也第4部分介绍extradata模式。最后第5部分介绍AAC压缩数据存储方式。

littlezls的博客 4936

POJ - 1182: 食物链 (并查集)

题目链接:http://poj.org/problem?id=1182 题目大意: 中文题目,自己看就好 解题思路:并查集经典中的经典题,在网上看了很多大牛的思路,大部分是增加一个结构体存动物间的关系,结合并查集判断,但是关系域的更新比较复杂,一下子不太容易理解,这里推荐一个大牛的解题思路,讲解得非常清楚:https://blog.youkuaiyun.com/niushuai666/article/de...

Jerry的博客 8105

维纳(Wiener)复原滤波器的三种推导形式及其在图像处理中的应用

本文深入解析了维纳(Wiener)复原滤波器的三种核心推导形式:卷积形式、矩阵向量形式和频域形式,并重点阐述了其基于线性最小均方误差(LMMSE)估计的核心思想。通过Python实战演示,展示了频域形式如何高效地在图像去模糊与噪声抑制之间取得平衡,是图像复原领域的经典且实用的工具。

net55的博客 577

并查集//POJ1182

第一行:咕咕咕。 第二行:我原以为并查集很简单的。原以为。因此我现在一看到说并查集“简单有趣”的博客就心情复杂(不排除对人家来说真的简单有趣)。(本博客下次更新会附送简单并查集缓解心情) 第三行:谁能想到一道并查集我花了两个晚上呢。 第四行:这道题需要多多复习,我现在也不是特别明白。 第五行:还是小白书友好一些。 第六行:真正的勇士,敢于wa题二十次。 并查集:快速判断两个或多个元素的关系,快速合...

MoonLight_月亮 219

从DMD芯片到3D视觉革命:揭秘DLP工业投影光机的核心技术

本文深入解析了DMD芯片在DLP工业投影光机中的核心技术应用,揭示了其如何通过3D结构光技术实现微米级精度。从DMD芯片的机械设计到工业级光机的特殊优化,再到光固化3D打印和系统集成,展现了DLP技术在工业自动化和智能制造中的革命性作用。

weixin_29048775的博客 510

K8S证书过期解决办法之替换证书

k8s证书过期解决方案之替换证书

q_hsolucky的博客 1万+

并查集(POJ1182)

链接:http://poj.org/problem?id=1182 定义一种关系R(x,y),x > y 时 R(x,y) = 2;x = y 时 R(x,y)= 1;x < y 时 R(x,y) = 0 则R(x,y)有如下运算法则: R(x,y) = (R(x,u) - R(y,u) + 4) % 3 R(x,y) = (R(x,u) + R(u,y) +...

banmi9580的博客 208

逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用

本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。

m3n5b7v8c9x的博客 409

POJ 1182 食物链(并查集) 详解

POJ 1182 食物链 (并查集) 详解参考做法比较经典的并查集的题目,主要是要理解路径压缩的过程。 用0 1 2 分别表示A B C的关系。 0吃1,1吃2,2吃0. 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。

chutzpah 2万+

理想L9高通QAM8797座舱域控制器全拆解|全网独家复现 硬件架构升级、电源散热优化、多屏低延迟交互、车机系统赋能高端智能座舱落地

随着智能汽车向舱驾一体、全域智能化、多模交互方向迭代,传统单一功能座舱芯片已无法满足多屏高刷渲染、全车AI语音、车内视觉感知、高速车载通信的叠加算力需求。2026款全新理想L9作为旗舰级智能SUV,全面搭载高通新一代旗舰座舱域控制器QAM8797,搭配自研马赫M100 AI芯片、国产车规主控芯片,构建起高性能、高可靠、低延迟的车载中央计算平台。

getusushu的博客 377

yolov5改进之Fasternet主干网络替换

fasternet替换yolov5主干网络

qq_41920323的博客 5143

[POJ 1182]食物链[并查集]

题目链接:[POJ 1182]食物链[并查集] 题意分析: 动物间可能存在一种食物链x吃y,y吃z,z吃x。下面给出一些语句,判断有多少句是假话。 解题思路: 设置三个并查集,分别代表物种,同一并查集中的动物种类相同。 不同种类间的合并代表着捕食关系。例如 x, y。因为x可以为任意一个种类中的动物,所以在合并它们捕食关系时,我们要把所有的可能情况都合并起来。 什么时候说谎话呢? 1

闲停 559

Archery通过OpenResty代理转发后登录一直提示Forbidden

测试几遍,连账号密码都没用验证,因为不管输什么都是提示Forbidden。找到配置文件settings.py,下面命令可到配置文件路径。回到页面刷新,随便输入个账号密码,验证失败证明请求成功了。查看Preview,提示CSRF验证失败,请求被中断。域名:dba.hkeasyspeed.com。打开开发者工具查看,网络里面可以看到报403。添加一条配置,把你配置域名添加进去。可以看到页面可以正常访问到。进入Archery容器。重启Archery容器。正常输入账号密码,OK。

万物皆可学 3143

【算法每日一练]-图论 篇10( 并查集)POJ1988 ,POJ1182

并查集刷题

m0_69478376的博客 1305

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

并查集怎么搞?POJ1182 食物链

文章目录并查集操作初始化查询元素的"祖先"查询元素是否同组合并POJ1182 食物链题解AC代码Tips 并查集 并查集是一种用来管理元素分组情况的数据结构。 可以进行如下操作: · 查询元素a和元素b是否属于同一组; · 合并元素a和元素b所在的组。 操作 初始化 int par[N], dth[N]; void init(int n) { for (int i = 0; i <= n; i++) { par[i] = i; dth[i] = 0;

Zoybzo想AK 223

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

poj 1182 食物链 并查集 Java

poj 1182 食物链 这道题其实还不是太明白 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer; class UnionFind { int[] parent; int[] size; int count; public UnionFind(int n) {

weixin_46621409的博客 323

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

POJ1182_食物链_并查集

唔,写了一晚上- -不只是写代码,我以为之前那个HDU4003我写的注释已经够多的了,没想到这次写的更多,果然写注释是会上瘾的- - 直接贴题和我自己的代码吧,题解神马的全在代码里,自认为自己这次写的还是比较清楚详尽和简洁的(自大啦-_-) 不过主要的核心思想用模三加法来加入并查集并不是我自己想出来的 食物链 Time Limit: 1000MS   M

u011343989的专栏 800

POJ 1182 食物链 【扩展域并查集】

动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话...

独钓门前月 360

POJ 1182 食物链 【带权并查集】

  题目链接:http://poj.org/problem?id=1182 题意:A能吃B,B能吃C,C能吃A,输入几个说法,D = 1,则 x 和 y 是同类,如果D = 2,则x 能吃 y;说法有多个,问有几个说法是和前面说过的说法相矛盾的; 这道题有两种解法,第一种解法是在《挑战程序设计》里面有提到的,还有另一种是在博客看到的,先看第一种; 开3*N的数组空间, 1到N,表示的是N个...

Y390d的博客 219

poj 1182 ,并查集拓展域+向量,谈谈个人理解和做法

原题:poj 1182 (做这道题因为我认为 -2%3 = 1 ,debug了一个多钟,吨吨吨吨吨。。。) 题意:emm题目是中文的 这道题相较于并查集入门题,多了一个集合之间的关系:一样,吃或者被吃,这个时候假如按照传统并查集做法,将全部动物通过并查集分成A,B,C三类将会十分难操作。并查集是快速提供一个集合的关系的做法,假如我们在集合内关系之间存放吃,一样或者被吃这三种关系呢。在做的时候...

forOnward的博客 259

POJ1182食物链--并查集的使用

POJ1182食物链 一道并查集题目 Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时

weixin_45808576的博客 230

POJ 1182 食物链 题解【并查集】

POJ 1182 食物链 题解【并查集】 题目链接:http://poj.org/problem?id=1182 ac代码: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #define N 150001 using namespace std; i...

qq_43979159的博客 213

poj1182 食物链(经典关系并查集)

http://poj.org/problem?id=1182 题意:给你n个生物k个操作,生物之间有吃、被吃、同类三种关系,1,x,y代表x和y是同类,2,x,y代表x吃y,求假话数量。 思路:并查集高级应用,直接上大牛博客。刚开始看了几个说的不怎么明白的博客被误导了,现在把思路都理清吧。 p[x]代表x的父亲节点,r[x]代表x与p[x]的关系,x、y所在集合的代表元素rx、r

Iguodala的博客 419

poj1182 并查集

题目连接:http://poj.org/problem?id=1182 基础并查集,需要维护与根节点关系,解析见代码: /* poj 1182 并查集 思路分析:让你分析这些话里面多少假的 只需要用一个并查集将已经给出的这些元素存起来 同时记录每个元素与他们根节点关系,如果根结点相同 但是关系不符合就是出现了矛盾。 关系有三种:同类 记为0 吃根节点 1 被根节点吃 2 ...

weixin_30871293的博客 132

POJ 1182 (种类并查集)

#include<queue> #include<algorithm> #include<cstdio> #include<iostream> #include<string.h> #include<vector> using namespace std; const int maxn=1500050; const int I...

qq_43838015的博客 125

poj1182 并查集+关系维护

poj1182题意:有 N 只动物, 编号为1 - N,这 N 只动物为别为 A、B、C 三类中的一类,已知:A 吃 B、B 吃 C、C 吃 A,同类不互吃。给你 K 条条件(a b c): a == 1 b 和 c 为同类; a == 2 为b 吃 c。条件从上到下依次满足(当编号大于N,也为错),问你有几条错误条件。思路:并查集。。。一般并查集我们只需维护一种关系,这道题有两种关系同类和捕食关

polmJ 311
上一篇: 【POJ】poj 1988(并查集_点到跟的距离)
下一篇: 【POJ】poj 3264 ( 线段树)
三生石1103
博客等级 码龄12年 16粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值