news 2026/5/11 5:23:34

打卡信奥刷题(2531)用C++实现信奥 P2024 [NOI2001] 食物链

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2531)用C++实现信奥 P2024 [NOI2001] 食物链

P2024 [NOI2001] 食物链

题目描述

动物王国中有三类动物A,B,CA,B,CA,B,C,这三类动物的食物链构成了有趣的环形。AAABBBBBBCCCCCCAAA

现有NNN个动物,以1∼N1 \sim N1N编号。每个动物都是A,B,CA,B,CA,B,C中的一种,但是我们并不知道它到底是哪一种。

有人用两种说法对这NNN个动物所构成的食物链关系进行描述:

  • 第一种说法是1 X Y,表示XXXYYY是同类。
  • 第二种说法是2 X Y,表示XXXYYY

此人对NNN个动物,用上述两种说法,一句接一句地说出KKK句话,这KKK句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。

  • 当前的话与前面的某些真的话冲突,就是假话;
  • 当前的话中XXXYYYNNN大,就是假话;
  • 当前的话表示XXXXXX,就是假话。

你的任务是根据给定的NNNKKK句话,输出假话的总数。

输入格式

第一行两个整数,N,KN,KN,K,表示有NNN个动物,KKK句话。

第二行开始每行一句话。格式见题目描述与样例。

输出格式

一行,一个整数,表示假话的总数。

输入输出样例 #1

输入 #1

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

输出 #1

3

说明/提示

对于全部数据,1≤N≤5×1041\le N\le 5 \times 10^41N5×1041≤K≤1051\le K \le 10^51K105

C++实现

#include<cstdio>inlineintread(){charc=getchar();intn=0;while(c<'0'||c>'9'){c=getchar();}while(c>='0'&&c<='9'){n=(n<<1)+(n<<3)+(c&15);c=getchar();}returnn;}constintmaxN=100005;intn,m,ans,fa[maxN*3];intfind(intu){returnfa[u]==u?u:fa[u]=find(fa[u]);}intmain(){n=read(),m=read();for(inti=1;i<=n*3;i++){fa[i]=i;}for(;m;m--){intopt=read(),u=read(),v=read();if(u>n||v>n){ans++;continue;}if(opt==1){if(find(u+n)==find(v)||find(u)==find(v+n)){ans++;}else{fa[find(u)]=find(v);fa[find(u+n)]=find(v+n);fa[find(u+n+n)]=find(v+n+n);}}else{if(find(u)==find(v)||find(u)==find(v+n)){ans++;}else{fa[find(u+n)]=find(v);fa[find(u+n+n)]=find(v+n);fa[find(u)]=find(v+n+n);}}}printf("%d\n",ans);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 10:34:21

数学动画可视化工具使用指南

数学动画可视化工具使用指南 【免费下载链接】videos 项目地址: https://gitcode.com/GitHub_Trending/vi/videos 数学动画可视化是现代数学教育和科学研究中的重要工具&#xff0c;能够将抽象的数学概念转化为直观的图形和动画。GitHub_Trending/vi/videos项目提供了丰…

作者头像 李华
网站建设 2026/5/9 20:08:22

MMMarkdown:让苹果生态中的Markdown转换变得轻松高效

MMMarkdown&#xff1a;让苹果生态中的Markdown转换变得轻松高效 【免费下载链接】MMMarkdown An Objective-C framework for converting Markdown to HTML. 项目地址: https://gitcode.com/gh_mirrors/mm/MMMarkdown 还在为在iOS、macOS应用中处理Markdown文档而烦恼吗…

作者头像 李华
网站建设 2026/5/10 2:10:43

Gemini-API项目完整教程:从零开始快速上手

Gemini-API项目完整教程&#xff1a;从零开始快速上手 【免费下载链接】Gemini-API ✨ An elegant async Python wrapper for Google Gemini web app 项目地址: https://gitcode.com/gh_mirrors/gem/Gemini-API 想要轻松使用Google Gemini的强大AI能力吗&#xff1f;Gem…

作者头像 李华
网站建设 2026/5/9 21:45:01

零基础学编程:用Python制作你的第一个颜色代码表

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 编写一个入门级的Python命令行颜色代码查询工具。功能包括&#xff1a;1) 预置20种常见颜色的名称与HEX/RGB对应关系 2) 用户输入颜色名称输出代码 3) 输入RGB值返回最接近的颜色名…

作者头像 李华
网站建设 2026/5/5 0:48:10

Docker仓库入门:从零开始搭建私有仓库

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个简单的私有Docker仓库搭建教程&#xff0c;包含Docker Registry的安装、配置和使用步骤。提供详细的命令行示例和截图&#xff0c;适合新手快速上手。使用Markdown格式编写…

作者头像 李华
网站建设 2026/5/10 13:35:51

Protobuf定义即文档:Sponge框架如何实现API文档零维护

Protobuf定义即文档&#xff1a;Sponge框架如何实现API文档零维护 【免费下载链接】sponge sponge is a powerful golang productivity tool that integrates code generation, web and microservice framework, basic development framework. 项目地址: https://gitcode.com…

作者头像 李华