news 2026/4/7 21:20:43

2025年6月GESP真题及题解(C++七级): 线图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2025年6月GESP真题及题解(C++七级): 线图

2025年6月GESP真题及题解(C++七级): 线图

题目描述

给定由n nn个结点与m mm条边构成的简单无向图G GG,结点依次以1 , 2 , … , n 1,2,\dots,n1,2,,n编号。简单无向图意味着G GG中不包含重边与自环。G GG线图L ( G ) L(G)L(G)通过以下方式构建:

  • 初始时线图L ( G ) L(G)L(G)为空。

  • 对于无向图G GG中的一条边,在线图L ( G ) L(G)L(G)中加入与之对应的一个结点。

  • 对于无向图G GG中两条不同的边( u 1 , v 1 ) , ( u 2 , v 2 ) (u_1,v_1),(u_2,v_2)(u1,v1),(u2,v2),若存在G GG中的结点同时连接这两条边(即u 1 , v 1 u_1,v_1u1,v1之一与u 2 , v 2 u_2,v_2u2,v2之一相同),则在线图L ( G ) L(G)L(G)中加入一条无向边,连接( u 1 , v 1 ) , ( u 2 , v 2 ) (u_1,v_1),(u_2,v_2)(u1,v1),(u2,v2)在线图中对应的结点。

请你求出线图L ( G ) L(G)L(G)中所包含的无向边的数量。

输入格式

第一行,两个正整数n , m n,mn,m,分别表示无向图G GG中的结点数和边数。

接下来m mm行,每行两个正整数u i , v i u_i,v_iui,vi,表示G GG中连接u i , v i u_i,v_iui,vi的一条无向边。

输出格式

输出共一行,一个整数,表示线图L ( G ) L(G)L(G)中所包含的无向边的数量。

输入输出样例 #1
输入 #1
5 4 1 2 2 3 3 1 4 5
输出 #1
3
输入输出样例 #2
输入 #2
5 10 1 2 1 3 1 4 1 5 2 3 2 4 2 5 3 4 3 5 4 5
输出 #2
30
说明/提示

【样例解释 #1】

【数据范围】

对于60 % 60\%60%的测试点,保证1 ≤ n ≤ 500 1 \le n \le 5001n5001 ≤ m ≤ 500 1 \le m \le 5001m500

对于所有测试点,保证1 ≤ n ≤ 10 5 1 \le n \le 10^51n1051 ≤ m ≤ 10 5 1 \le m \le 10^51m105

思路分析

线图 L(G) 的边数等于原图 (G) 中所有共享一个公共顶点的边对数量。对于每个顶点 v,设其度数为 deg(v),那么以 v为公共顶点的边对数为( d e g ( v ) 2 ) = d e g ( v ) × ( d e g ( v ) − 1 ) 2 \binom{deg(v)}{2} = \frac{deg(v) \times (deg(v)-1)}{2}(2deg(v))=2deg(v)×(deg(v)1)。因此,线图的边数即为所有顶点对应的边对数之和。

由于原图是简单无向图,不存在重边,所以每条线图的边只被一个公共顶点唯一确定,不会重复计数。

算法步骤:
  1. 读入顶点数 n和边数 m。
  2. 初始化度数数组deg[],长度为n+1,所有元素置 0。
  3. 对于每条边 (u, v),将deg[u]deg[v]各加 1。
  4. 遍历所有顶点1 ∼ n 1 \sim n1n,累加每个顶点的b i n o m d e g [ i ] 2 binom{deg[i]}{2}binomdeg[i]2
  5. 输出结果,注意使用long long类型存储结果。
时间复杂度:

O(n + m),满足题目数据范围要求。

空间复杂度:

O(n),用于存储度数数组。

代码实现

#include<bits/stdc++.h>usingnamespacestd;constintMAXN=100005;intdeg[MAXN];// 存储每个顶点的度数intmain(){intn,m;scanf("%d%d",&n,&m);// 初始化度数数组for(inti=1;i<=n;i++)deg[i]=0;// 读入边并更新度数for(inti=0;i<m;i++){intu,v;scanf("%d%d",&u,&v);deg[u]++;deg[v]++;}// 计算线图的边数longlongans=0;// 结果可能很大,使用 long longfor(inti=1;i<=n;i++){// 累加 C(deg[i], 2)ans+=(longlong)deg[i]*(deg[i]-1)/2;}printf("%lld\n",ans);return0;}

功能分析

1. 输入处理
  • 读入顶点数n和边数m
  • 通过循环读入每条边,同时更新相关顶点的度数。
2. 度数统计
  • 数组deg[]记录每个顶点的度数,即与该顶点相连的边的数量。
  • 对于每条边(u, v)deg[u]deg[v]各增加 1。
3. 核心计算
  • 遍历所有顶点,对每个顶点i计算组合数( d e g [ i ] 2 ) \binom{deg[i]}{2}(2deg[i])
  • 公式deg[i] * (deg[i] - 1) / 2直接计算组合数,避免了阶乘运算。
  • 累加所有顶点的组合数得到线图的边数。
4. 输出结果
  • 使用%lld格式输出最终结果。
注意事项
  • 结果可能超出int范围(最大约10 10 10^{10}1010),必须使用long long
  • 数组大小应略大于最大顶点数(10 5 10^5105),防止越界。
  • 输入使用scanf提高效率,适合大数据量。
验证样例
  • 样例1:顶点度数分别为 2,2,2,1,1,组合数之和为 1+1+1+0+0=3,与输出一致。
  • 样例2:完全图K 5 K_5K5每个顶点度数为 4,组合数为 6,5 个顶点总和为 30,与输出一致。

各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

1、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html

2、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

3、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html

4、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 13:16:10

原神祈愿记录永久保存终极指南:告别数据丢失的完整解决方案

原神祈愿记录永久保存终极指南&#xff1a;告别数据丢失的完整解决方案 【免费下载链接】genshin-wish-export biuuu/genshin-wish-export - 一个使用Electron制作的原神祈愿记录导出工具&#xff0c;它可以通过读取游戏日志或代理模式获取访问游戏祈愿记录API所需的authKey。 …

作者头像 李华
网站建设 2026/4/4 10:10:03

3步掌握:如何用ObjToSchematic打造专属Minecraft世界

3步掌握&#xff1a;如何用ObjToSchematic打造专属Minecraft世界 【免费下载链接】ObjToSchematic A tool to convert 3D models into Minecraft formats such as .schematic, .litematic, .schem and .nbt 项目地址: https://gitcode.com/gh_mirrors/ob/ObjToSchematic …

作者头像 李华
网站建设 2026/3/30 14:43:28

Rats Search 2.0技术深度解析:构建高性能P2P搜索引擎的架构革命

Rats Search 2.0技术深度解析&#xff1a;构建高性能P2P搜索引擎的架构革命 【免费下载链接】rats-search BitTorrent P2P multi-platform search engine for Desktop and Web servers with integrated torrent client. 项目地址: https://gitcode.com/gh_mirrors/ra/rats-se…

作者头像 李华
网站建设 2026/4/6 1:35:07

「数据获取」全国民用运输机场生产统计公报(2006-2024)

01、数据简介数据概况目录如下&#xff1a;一、运输机场和通航城市二、主要生产指标三、旅客吞吐量分布四、货邮吞吐量分布我国目前民航行业现实概况2024年&#xff0c;我国境内运输机场(港澳台地区数据另行统计&#xff0c;下同)共有263个&#xff0c;其中定期航班通航运输机场…

作者头像 李华
网站建设 2026/4/5 14:11:20

Beyond Compare 5密钥生成与激活方法深度解析

Beyond Compare 5密钥生成与激活方法深度解析 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5作为业界领先的文件比较工具&#xff0c;其专业版功能为用户提供了强大的数据同步…

作者头像 李华
网站建设 2026/4/5 5:36:58

MoviePilot v2.9.3:终极影视自动化管理工具全面升级

MoviePilot v2.9.3&#xff1a;终极影视自动化管理工具全面升级 【免费下载链接】MoviePilot NAS媒体库自动化管理工具 项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot MoviePilot是一款专注于NAS媒体库自动化管理的开源工具&#xff0c;能够帮助用户高效整理…

作者头像 李华