news 2026/6/10 14:55: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/6/10 9:59:25

5个RapidJSON实战技巧:从入门到精通的高效JSON处理

5个RapidJSON实战技巧&#xff1a;从入门到精通的高效JSON处理 【免费下载链接】rapidjson 项目地址: https://gitcode.com/gh_mirrors/rap/rapidjson RapidJSON作为一款高性能C JSON解析库&#xff0c;凭借其卓越的解析速度和内存效率&#xff0c;已成为处理JSON数据的…

作者头像 李华
网站建设 2026/6/10 12:55:35

Wan2.1-I2V图像转视频模型:快速部署与高效应用指南

Wan2.1-I2V图像转视频模型&#xff1a;快速部署与高效应用指南 【免费下载链接】Wan2.1-I2V-14B-480P-StepDistill-CfgDistill-Lightx2v 项目地址: https://ai.gitcode.com/hf_mirrors/lightx2v/Wan2.1-I2V-14B-480P-StepDistill-CfgDistill-Lightx2v Wan2.1-I2V-14B-4…

作者头像 李华
网站建设 2026/6/10 12:58:34

Sparta网络渗透测试工具完整部署与使用教程

Sparta是一款由SECFORCE开发的开源网络基础设施渗透测试工具&#xff0c;采用Python编写并基于PyQt5构建图形界面。该工具旨在简化和加速网络扫描与枚举阶段&#xff0c;通过直观的图形界面帮助安全测试人员快速访问各种安全工具并集中查看分析结果。 【免费下载链接】sparta N…

作者头像 李华
网站建设 2026/6/10 15:05:10

FluidNC运动控制固件:为CNC设备注入智能灵魂

FluidNC运动控制固件&#xff1a;为CNC设备注入智能灵魂 【免费下载链接】FluidNC The next generation of motion control firmware 项目地址: https://gitcode.com/gh_mirrors/fl/FluidNC FluidNC是一款专为ESP32控制器设计的下一代运动控制固件&#xff0c;作为Grbl_…

作者头像 李华
网站建设 2026/6/10 12:55:00

AI Collection邮件助手:如何3步实现智能邮件处理效率翻倍?

AI Collection邮件助手&#xff1a;如何3步实现智能邮件处理效率翻倍&#xff1f; 【免费下载链接】ai-collection The Generative AI Landscape - A Collection of Awesome Generative AI Applications 项目地址: https://gitcode.com/gh_mirrors/ai/ai-collection 在信…

作者头像 李华
网站建设 2026/6/10 0:31:27

Adobe Creative Cloud Cleaner Tool新手使用指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向新手的交互式教程应用&#xff0c;逐步引导用户使用Adobe Creative Cloud Cleaner Tool。应用应包含基础知识介绍、安全注意事项、操作演示和模拟练习功能。采用问答形…

作者头像 李华