当前位置: 首页 > news >正文

题解:洛谷 P13014 [GESP202506 五级] 最大公因数

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

洛谷:P13014 [GESP202506 五级] 最大公因数 - 洛谷

【题目描述】

对于两个正整数a , b a,ba,b,他们的最大公因数记为g c d ( a , b ) gcd(a,b)gcd(a,b)。对于k > 3 k>3k>3个正整数c 1 , c 2 , … , c k c_1,c_2,…,c_kc1,c2,,ck,他们的最大公因数为:

g c d ( c 1 , c 2 , … , c k ) = g c d ( g c d ( c 1 , c 2 , … , c k − 1 ) , c k ) gcd(c_1,c_2,…,c_k)=gcd(gcd(c_1,c_2,…,c_{k−1}),c_k)gcd(c1,c2,,ck)=gcd(gcd(c1,c2,,ck1),ck)

给定n nn个正整数a 1 , a 2 , … , a n a_1,a_2,…,a_na1,a2,,an以及q qq组询问。对于第i ( 1 ≤ i ≤ q ) i(1≤i≤q)i(1iq)组询问,请求出a 1 + i , a 2 + i , … , a n + i a_1+i,a_2+i,…,a_n+ia1+i,a2+i,,an+i的最大公因数,也即g c d ( a 1 + i , a 2 + i , … , a n + i ) gcd(a_1+i,a_2+i,…,a_n+i)gcd(a1+i,a2+i,,an+i)

【输入】

第一行,两个正整数n , q n,qn,q,分别表示给定正整数的数量,以及询问组数。

第二行,n nn个正整数a 1 , a 2 , … , a n a_1,a_2,…,a_na1,a2,,an

【输出】

输出共q qq行,第i ii行包含一个正整数,表示a 1 + i , a 2 + i , … , a n + i a_1+i,a_2+i,…,a_n+ia1+i,a2+i,,an+i的最大公因数。

【输入样例】

5 3 6 9 12 18 30

【输出样例】

1 1 3

【算法标签】

#普及-# #约数#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=100005;// 定义数组最大长度intn,q;// n为数组长度,q为查询次数inta[N],b[N];// a存储原始数组,b存储预处理结果intcur=1;// 当前查询位置指针intt=0;// 存储数组元素的差分GCD// 计算两个数的最大公约数intgcd(inta,intb){if(b==0)returna;returngcd(b,a%b);}intmain(){// 输入数组长度和查询次数cin>>n>>q;// 输入数组元素for(inti=1;i<=n;i++)cin>>a[i];// 对数组进行排序sort(a+1,a+1+n);// 计算相邻元素的差分GCDfor(inti=2;i<=n;i++)t=gcd(t,a[i]-a[i-1]);// 处理所有元素相同的情况(差分为0)if(t==0){for(inti=1;i<=q;i++)cout<<a[i]+i<<endl;return0;}// 预处理每个偏移量i的GCD结果for(inti=1;i<=t;i++){intg=0;for(intj=1;j<=n;j++)g=gcd(g,a[j]+i);b[i]=g;}// 处理查询for(inti=1;i<=q;i++){cout<<b[cur]<<endl;cur++;if(cur>t)cur=1;// 循环使用预处理结果}return0;}

【运行结果】

5 3 6 9 12 18 30 1 1 3
http://www.jsqmd.com/news/779332/

相关文章:

  • 压缩距离(NCD)原理及其在客户端机器学习的应用
  • 使用Taotoken为自动化脚本提供稳定可靠的大模型文本处理能力
  • 成都H型钢型钢批发|源头钢厂直供|盛世钢联Q235B/Q355B现货充足|可加工配送 - 四川盛世钢联营销中心
  • 工业物联通信升级方案:蓝牙对讲机如何打通“人、机、场”实时协同
  • TMC2226的UART单线通信到底怎么玩?一个案例讲透从接线、寻址到StallGuard4调参
  • 别再复制粘贴了!手把手教你用C语言实现一个支持任意长度的CRC-8校验函数
  • 毕业设计 深度学习口罩佩戴检测系统
  • Nacos客户端日志太吵?Spring Boot/Cloud项目里这样配置,瞬间清净
  • 智能体管理系统架构设计:从容器化到消息队列的工程实践
  • ARM协处理器CP15与DMA控制深度解析
  • 2026矿用天线深度选型指南:不同场景下的最佳方案匹配 - 博客湾
  • #2026安徽优质婚纱摄影品牌实力排行榜|实景、中式、法式、复古、外景风格全覆盖 - 安徽工业
  • 避坑指南:基于Verilog和Tiva C的SPWM生成与ADS8688采样那些事儿(单相逆变电源实战)
  • 2026 年最新安徽婚纱摄影 TOP6 权威评测考核报告 - 安徽工业
  • 雷总发福利了!小米100万亿Token免费领,还没上车的速进!
  • AMD Ryzen处理器终极调试指南:5分钟掌握SMUDebugTool完整使用技巧
  • 垂类SaaS的护城河:深挖行业Know-How的技术实现
  • 蜂窝物联网商业化破局:从eSIM技术到服务化转型
  • 别只盯着OpenMV!用TB6612电机驱动给STM32小车调个“跟车”速度环PID
  • 2025届最火的六大AI论文网站实际效果
  • uni-app怎么做类似于淘宝的物流单号自动识别 uni-app正则匹配逻辑实现【实战】
  • G-Helper:华硕笔记本的轻量级性能管家,告别Armoury Crate的臃肿体验
  • 国产替代之NTMFS0D7N04XMT1G与VBQA1401参数对比报告
  • 从玩具舵机到机器人关节:SG90的PWM控制原理深度拆解(附示波器实测波形)
  • 多温区烘胶台选型报告
  • 配置OpenClaw通过Taotoken调用AI助手自动化处理视频项目需求
  • The University of Melbourne - COMP10003 (Media Computation)
  • 华硕Tinker系列RISC-V与Arm开发板工业应用解析
  • SafePaw Gateway:为自托管AI助手构建开箱即用的安全边界
  • AI驱动工程变更管理:从“被动应对”到“主动管控”的数字化跃迁