news 2026/9/27 21:45:18

GESP认证C++编程真题解析 | P10378 [GESP202403 七级] 交流问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | P10378 [GESP202403 七级] 交流问题

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[P10378 GESP202403 七级] 交流问题 - 洛谷

【题目描述】

来自两所学校A AA、B BB的n nn名同学聚在一起相互交流。为了方便起见,我们把这些同学从1 11至n nn编号。他们共进行了m mm次交流,第i ii次交流中,编号为u i , v i u_i, v_iui​,vi​的同学相互探讨了他们感兴趣的话题,并结交成为了新的朋友。

由于这次交流会的目的是促进两校友谊,因此只有不同学校的同学之间会交流。同校同学并不会互相交流。

作为A AA校顾问,你对B BB校的规模非常感兴趣,你希望求出B BB校至少有几名同学、至多有几名同学。

【输入】

第一行两个正整数,表示同学的人数n nn、交流的次数m mm。
接下来m mm行,每行两个整数u i , v i u_i, v_iui​,vi​,表示一次交流。

【输出】

输出一行两个整数,用单个空格隔开,分别表示B BB校至少有几名同学、至多有几名同学。

【输入样例】

4 3 1 2 2 3 4 2

【输出样例】

1 3

【算法标签】

《洛谷 P10378 交流问题》 #搜索# #图论# #并查集# #图论建模# #二分图# #GESP# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+5;// 最大节点数intn,m,s,t;// n: 节点数, m: 边数, s,t: 边的两个端点intans1,ans2;// ans1: 最小染色数, ans2: 最大染色数intnum[3];// num[1]: 颜色1的节点数, num[2]: 颜色2的节点数intcol[N];// 每个节点的颜色,0表示未染色vector<int>e[N];// 邻接表存储图// 深度优先搜索进行二分图染色voiddfs(intu){// 遍历节点u的所有邻居节点vfor(autov:e[u]){// 如果邻居节点v还未染色if(col[v]==0){// 将v染成与u不同的颜色// 如果col[u]=1,则col[v]=2;如果col[u]=2,则col[v]=1col[v]=3-col[u];num[col[v]]++;// 对应颜色的节点数加1dfs(v);// 递归染色v的邻居}}}intmain(){// 输入节点数和边数cin>>n>>m;// 输入边,构建无向图for(inti=1;i<=m;i++){cin>>s>>t;e[s].push_back(t);e[t].push_back(s);}// 遍历所有节点for(inti=1;i<=n;i++){// 如果节点i还未染色,说明找到一个新的连通分量if(col[i]==0){// 初始化当前连通分量的颜色计数num[1]=1;// 从颜色1开始,所以num[1]=1num[2]=0;// 颜色2初始为0// 将节点i染成颜色1col[i]=1;// 从节点i开始进行DFS染色dfs(i);// 统计当前连通分量的结果// ans1: 最小化颜色1和颜色2的较小值// ans2: 最大化颜色1和颜色2的较大值ans1+=min(num[1],num[2]);ans2+=max(num[1],num[2]);}}// 输出结果cout<<ans1<<" "<<ans2<<endl;return0;}

【运行结果】

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

APatch进阶指南:深度掌握Android系统自定义与调优技术

APatch进阶指南&#xff1a;深度掌握Android系统自定义与调优技术 【免费下载链接】APatch Patching, hooking, and rooting the Android using only a stripped kernel image. 项目地址: https://gitcode.com/gh_mirrors/ap/APatch APatch是一个专为Android系统深度定制…

作者头像 李华
网站建设 2026/9/27 5:00:02

Minecraft外观管理终极指南:高效解决外观丢失问题

你是否曾在Minecraft服务器中遇到外观突然消失的困扰&#xff1f;精心挑选的角色外观在离线模式下变成默认的Steve或Alex&#xff0c;这种体验确实令人沮丧。作为Minecraft社区最受欢迎的外观管理插件&#xff0c;SkinsRestorer提供了一套完整的解决方案&#xff0c;能够有效应…

作者头像 李华
网站建设 2026/9/27 5:59:27

GameAssist智能游戏助手:从菜鸟到高手的秘密武器

还在为游戏中的精准射击而烦恼吗&#xff1f;GameAssist这款革命性的AI游戏助手将彻底改变你的游戏体验&#xff01;与传统第三方辅助工具不同&#xff0c;它基于先进的图像识别技术&#xff0c;通过分析屏幕内容实现智能辅助&#xff0c;完全合法安全。无论你是PUBG绝地求生玩…

作者头像 李华
网站建设 2026/9/27 19:56:44

YACReader快速上手指南:跨平台漫画阅读的完美解决方案

YACReader快速上手指南&#xff1a;跨平台漫画阅读的完美解决方案 【免费下载链接】yacreader This repo contains the code of YACReaders desktop version. 项目地址: https://gitcode.com/gh_mirrors/ya/yacreader YACReader作为一款出色的跨平台漫画阅读工具&#x…

作者头像 李华
网站建设 2026/9/27 3:52:37

NetSend:终极内网文件传输完整指南,简单快速免费使用

NetSend&#xff1a;终极内网文件传输完整指南&#xff0c;简单快速免费使用 【免费下载链接】netSend 内网传输工具 项目地址: https://gitcode.com/gh_mirrors/ne/netSend 还在为局域网内设备间的文件传输而烦恼吗&#xff1f;想象一下&#xff0c;无需数据线、不依赖…

作者头像 李华
网站建设 2026/9/27 10:03:43

ChatALL完全指南:一键同时对话30+AI助手的终极解决方案

在AI技术飞速发展的今天&#xff0c;各大厂商纷纷推出自己的智能助手&#xff0c;但逐个测试不同AI模型既耗时又低效。ChatALL正是为解决这一痛点而生&#xff0c;它是一款革命性的多AI对话聚合工具&#xff0c;让你能够同时向超过30款主流AI聊天机器人提问&#xff0c;快速发现…

作者头像 李华