首页 > 其他分享 >P2024 [NOI2001] 食物链

P2024 [NOI2001] 食物链

时间:2024-04-25 13:23:40浏览次数:26  
标签:findfa P2024 食物链 int Flow 群落 NOI2001 rm 2n

Solution:

使用拓展域并查集,\(1-n\) 表示 \(\rm A\) 群落,\(n+1-2n\) 是 \(\rm B\) 群落,\(2n+1 - 3n\) 是 \(\rm C\) 群落

那么对于操作一,我们首先判断 \(x\) 是否吃了 \(y\) 或 \(y\) 是否吃了 \(x\) .

  • 若吃了,那么这句话为假

  • 若没吃,则将 (x,y) (x+n,y+n) (x+2n,y+2n) 三条边连上

对于操作二,同理若果 \(x\) 与 \(y\) 是否是同类或 \(y\) 吃了 \(x\),这句话就为假。

否则就连 (x,y+2n) (x+n,y) (x+2n,y+n) 三条边。

注意判断 \(x\) 与 \(y\) 是否大于 \(n\)

code:


#include<bits/stdc++.h>
#define int long long
#define Flow {ans++;continue;} //假的时候
using namespace std;

const int N=5e4+10;
int f[N*3],n;
int findfa(int x){return f[x]=(f[x]==x)?x:findfa(f[x]);}
int ans;

signed main(){
	std::ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int T;
	cin>>n>>T;
	for(int i=1;i<=3*n;i++)f[i]=i;
	while(T--){
		int opt,x,y;
		cin>>opt>>x>>y;
		if(x>n||y>n)Flow;//注意这里判断是否越界
		if(opt==1){
			if(findfa(x)==findfa(y+n)||findfa(x+n)==findfa(y))Flow;//判断
			f[findfa(x)]=findfa(y);// 连边
			f[findfa(x+n)]=findfa(y+n);
			f[findfa(x+2*n)]=findfa(y+2*n);
		}
		else{
			if(findfa(x)==findfa(y)||findfa(x)==findfa(y+n))Flow;
			f[findfa(x)]=findfa(y+2*n);
			f[findfa(x+n)]=findfa(y);
			f[findfa(x+2*n)]=findfa(y+n);
		}
	}
	cout<<ans<<endl;
	
	return 0;
}

标签:findfa,P2024,食物链,int,Flow,群落,NOI2001,rm,2n
From: https://www.cnblogs.com/little-corn/p/18157455

相关文章

  • BetterZip2024功能强大、操作便捷且用户体验优秀的Mac端解压缩软件
    作为一名软件专家,对于市面上各类软件都有较为深入的了解,下面介绍的是一款适用于Mac系统的解压缩软件——BetterZip,将从其功能特点、使用方法、用户体验及适用人群等方面进行详细介绍。BetterZip5-安装包绿色版下载如下:https://wm.makeding.com/iclk/?zoneid=60187首先是功......
  • BetterZip2024Mac上一款功能强大的Mac平台解压压缩软件
    一、软件概述BetterZip是一款Mac平台上的压缩解压缩工具,它为用户提供了一个方便的方式来处理各种压缩文件,包括但不限于ZIP、TAR、GZIP等格式。除了基本的压缩解压缩功能外,BetterZip还具备文件预览、文件加密、分卷压缩等高级功能,使得用户能够更加灵活高效地管理自己的压缩文件......
  • 洛谷题单指南-图的基本应用-P4017 最大食物链计数
    原题链接:https://www.luogu.com.cn/problem/P4017题意解读:食物链的顶端不会被其他生物吃,在图结构中设定为入度是0,食物链的底端不会吃其他生物,在图结构式设定为出度是0,此题就是要计算所有入度是0的点到所有出度是0的点一共有多条路径。解题思路:首先,来模拟一样样例,样例数据形成的......
  • 【合集】HZOI2024——冲刺NOIP2024
    前言喵喵于\(2024.3.18\)建立\(vjudge\)团队\(NOIP2024\),成员为全体\(HZOI2024\)初三现役人员,旗下三个板块的专题训练,分别为动态规划、图论、字符串,其中题目非紫即黑,存在少量蓝。并于\(2024.3.19\)成功关闭\(luogu\)。团队链接动态规划图论字符串接......
  • Photoshop2024(PS)和Lightroom(LR)设计的智能磨皮插件Portraiture下载
     打造完美肤质,PortraiturePS/LR专用智能磨皮插件让你的照片焕发魅力副标题:让你的照片告别粗糙皮肤和毛孔,展现自然细腻的肤质在摄影后期处理中,给照片进行磨皮和肤质优化是一项必不可少的步骤。而今天,我们为你带来了一款专为Photoshop(PS)和Lightroom(LR)设计的智能磨皮插件——......
  • NOIP2024 模拟赛1
    \(2023\)赛年的结束,\(2024\)赛年的开始。我们会继续前行,也永远会。如今走过这世间万般流连翻过岁月不同侧脸措不及防闯入你的笑颜我曾难自拔于世界之大也沉溺于其中梦话不得真假不做挣扎不惧笑话我曾将青春翻涌成她也曾指尖弹出盛夏心之所动且就随缘去吧逆着光......
  • P4017 最大食物链计数
    原题链接题解首先这题是一个有向无环图,如图,每个结点上方显示的是到达该节点的路径数,我们不难发现每个结点的路径数都由其入度结点的路径数之和,最终得出5结点的路径数。那么由此我们只需要求出每个无出度结点的路径数再相加即可。 code #include<bits/stdc++.h>usingnam......
  • POJ1182 食物链 (并查集的应用)
    POJ1182食物链(并查集的应用)Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法......
  • AcWing 240. 食物链
    题面:有三类动物\(A,B,C\),\(A\)吃\(B\),\(B\)吃\(C\),\(C\)吃\(A\)。现有\(N\)个动物,以\(1∼N\)编号,每个动物都是\(A,B,C\)中的一种。用两种说法对这\(N\)个动物所构成的食物链关系进行描述:第一种说法是1XY,表示\(X\)和\(Y\)是同类。第二种说法是2X......
  • P4017 最大食物链计数
    P4017最大食物链计数记忆化搜索DP角度解从捕食者向被捕食者建边维护每个生物的捕食eat,和被捕食数量beat。对每一个食物链顶端dfs,向下搜索直到找到最低级的生物,记忆化当前结点对应的食物链长度。#include<iostream>#include<algorithm>#include<cstring>#defin......