news 2026/4/7 19:49:26

GESP认证C++编程真题解析 | P14918 [GESP202512 五级] 相等序列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | P14918 [GESP202512 五级] 相等序列

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

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

适合人群:

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

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


【题目来源】

洛谷:[P14918 GESP202512 五级] 相等序列 - 洛谷

【题目描述】

小 A 有一个包含N NN个正整数的序列A = { A 1 , A 2 , … , A N } A=\{A_1,A_2,\ldots,A_N\}A={A1,A2,,AN}。小 A 每次可以花费1 11个金币执行以下任意一种操作:

  • 选择序列中一个正整数A i A_iAi1 ≤ i ≤ N 1\le i\le N1iN),将A i A_iAi变为A i × P A_i\times PAi×PP PP为任意质数;
  • 选择序列中一个正整数A i A_iAi1 ≤ i ≤ N 1\le i\le N1iN),将A i A_iAi变为A i P \frac{A_i}{P}PAiP PP为任意质数,要求A i A_iAiP PP的倍数。

小 A 想请你帮他计算出令序列中所有整数都相同,最少需要花费多少金币。

【输入】

第一行一个正整数N NN,含义如题面所示。

第二行包含N NN个正整数A 1 , A 2 , … , A N A_1,A_2,\ldots,A_NA1,A2,,AN,代表序列A AA

【输出】

输出一行,代表最少需要花费的金币数量。

【输入样例】

5 10 6 35 105 42

【输出样例】

8

【算法标签】

《洛谷 P14918 相等序列》 #贪心# #数论# #素数判断,质数,筛法# #GESP# #2025#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=100005;intn,a[N][20],p[10005],cur,isprime[100005],ans;// n: 数字个数, a: 存储质因数统计, p: 质数数组, cur: 质数个数, isprime: 判断质数并存储索引, ans: 答案intmain(){cin>>n;// 输入数字个数// 埃拉托色尼筛法预处理质数for(inti=2;i<=100000;i++){if(!isprime[i])// 如果i是质数{p[++cur]=i;// 将质数i存入数组pisprime[i]=cur;// 记录质数i在数组p中的索引for(intj=i+i;j<=100000;j+=i)// 标记i的所有倍数isprime[j]=1;// 标记为非质数}}// 处理输入的n个数字for(inti=1;i<=n;i++){intx;cin>>x;// 输入一个数字// 分解质因数for(intj=1;p[j]*p[j]<=x;j++)// 只需检查到sqrt(x){if(x%p[j]==0)// 如果p[j]是x的质因数{intcnt=0;// 记录当前质因数的指数while(x%p[j]==0)// 计算质因数p[j]的指数{cnt++;a[j][cnt]++;// 统计第j个质数的cnt次方在n个数字中出现的次数x/=p[j];// 除掉这个质因数}}}if(x)// 如果x还有剩余的质因数(x本身是质数且大于sqrt(原x))a[isprime[x]][1]++;// 统计这个质数的一次方}// 计算结果for(inti=1;i<=cur;i++)// 遍历所有质数for(intj=1;a[i][j];j++)// 遍历第i个质数的所有指数{if(a[i][j]>n/2)// 如果该质因子指数出现的次数超过一半ans+=n-a[i][j];// 添加需要改变的个数elseans+=a[i][j];// 添加该指数出现的次数}cout<<ans<<endl;// 输出结果return0;}

【运行结果】

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

【IC】什么是芯片间接口 -- die 2 die interface

定义 芯片间接口是一种功能模块&#xff0c;用于在同一封装内组装的两个硅芯片之间提供数据接口。芯片间接口利用极短的通道连接封装内的两个芯片&#xff0c;从而实现远超传统芯片间接口的功率效率和极高的带宽效率。 芯片间接口通常由物理层 (PHY) 和控制器模块组成&#xff…

作者头像 李华
网站建设 2026/3/31 5:29:33

从零搞定C#跨平台兼容性,资深架构师20年实战经验全分享

第一章&#xff1a;C#跨平台兼容性的核心挑战C# 作为一门由微软推出的现代编程语言&#xff0c;最初依赖于 .NET Framework 和 Windows 平台。随着 .NET Core 的推出及其后续演进为统一的 .NET&#xff08;从 .NET 5 开始&#xff09;&#xff0c;C# 实现了真正的跨平台能力。然…

作者头像 李华
网站建设 2026/4/5 19:13:19

【.NET开发者必看】:构建高性能跨平台日志系统的7步法则

第一章&#xff1a;.NET日志系统的核心价值与跨平台挑战在现代软件开发中&#xff0c;日志系统是保障应用可观测性、调试效率和故障排查能力的关键组件。.NET平台通过内置的 Microsoft.Extensions.Logging 抽象层&#xff0c;为开发者提供了一套统一的日志编程模型。这一抽象不…

作者头像 李华
网站建设 2026/4/3 19:13:54

Tacotron2或FastSpeech用于HeyGem语音特征提取?

Tacotron2或FastSpeech用于HeyGem语音特征提取&#xff1f; 在构建数字人系统时&#xff0c;一个常见的技术困惑是&#xff1a;能否用TTS模型&#xff08;如Tacotron2、FastSpeech&#xff09;来驱动口型动画&#xff1f; 尤其当看到“语音到视觉”的任务时&#xff0c;人们容…

作者头像 李华
网站建设 2026/4/8 5:10:00

从零搭建生产级Agent:Agno框架+Milvus知识库完整实战指南!

简介 本文详细对比了生产级多智能体框架Agno与LangGraph的区别&#xff0c;展示了Agno框架Milvus知识库的完整实现方案。Agno专为生产环境设计&#xff0c;提供从开发到部署的完整技术栈&#xff0c;支持快速交付。文章通过知识库助手实例&#xff0c;演示了单Agent和多Agent架…

作者头像 李华