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

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

【题目来源】
https://www.luogu.com.cn/problem/P13014

【题目描述】
对于两个正整数 a,b,他们的最大公因数记为 gcd(a,b)。对于 k>3 个正整数 c_1, c_2, \cdots,c_k,他们的最大公因数为:gcd(c_1,c_2,\cdots,c_k) = gcd(gcd(c_1,c_2,\cdots,c_{k-1}), c_k)
给定 n 个正整数 a_1,a_2,\cdots,a_n 以及 q 组询问。对于第 i(1\leq i\leq q) 组询问,请求出 a_1+i,a_2+i,\cdots ,a_n+i 的最大公因数,也即 gcd(a_1+i,a_2+i,\cdots ,a_n+i)

【输入格式】
第一行,两个正整数 n,q,分别表示给定正整数的数量,以及询问组数。
第二行,n 个正整数 a_1,a_2,\cdots,a_n

【输出格式】
输出共 q 行,第 i 行包含一个正整数,表示 a_1+i,a_2+i,\cdots ,a_n+i 的最大公因数。

【输入样例】
5 3
6 9 12 18 30

【输出样例】
1
1
3

【说明/提示】
对于 60% 的测试点,保证 1≤n≤10^3,1≤q≤10。
对于所有测试点,保证 1≤n≤
10^5,1≤q≤10^5,1≤ai≤1000。

【算法分析】
● “辗转相除法”求最大公约数:https://blog.csdn.net/hnjzsyjyj/article/details/145671149
● 最大公约数性质:

gcd(a,b)=gcd(a,b-a) \\ gcd(a,b,c)=gcd(a,b-a,c-b)\\ gcd(a_1, a_2,\cdots,a_n)=gcd(a_1,a_2-a_1,a_3-a_2,\cdots,a_n-a_{n-1})

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int maxn=1e5+5;
int a[maxn];
int n,q,t;int gcd(int a,int b) {if(b==0) return a;return gcd(b,a%b);
}int main() {scanf("%d%d",&n,&q);for(int i=1; i<=n; i++) {scanf("%d",&a[i]);}sort(a+1,a+n+1);for(int i=2; i<=n; i++) {t=gcd(t,a[i]-a[i-1]);}for(int i=1; i<=q; i++) {printf("%d\n",gcd(t,a[1]+i));}return 0;
}/*
in:
5 3
6 9 12 18 30out:
1
1
3
*/





【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/145671149
https://blog.csdn.net/hnjzsyjyj/article/details/136276606



 

http://www.xdnf.cn/news/1116019.html

相关文章:

  • CentOS系统下前后端项目部署攻略
  • 【MLLM】多模态理解GLM-4.1V-Thinking模型
  • 深度学习图像分类数据集—水质量识别分类
  • java.net.InetAddress
  • Extended Nested Arrays for Consecutive Virtual Aperture Enhancement
  • RHCIA第二次综合实验:OSPF
  • 印度纱丽变革:传统靛蓝工艺在无性别斗篷中的延续
  • CMSIS(Cortex Microcontroller Software Interface Standard)ARM公司为 Cortex-M 系列处理器
  • docker 设置代理以及配置镜像加速
  • VISUALBERT:一个简单且高效的视觉与语言基线模型
  • JavaScript加强篇——第九章 正则表达式高级应用(终)
  • java+vue+SpringBoo中小型制造企业质量管理系统(程序+数据库+报告+部署教程+答辩指导)
  • archive/tar: unknown file mode ?rwxr-xr-x
  • Java行为型模式---策略模式
  • 低代码引擎核心技术:OneCode常用动作事件速查手册及注解驱动开发详解
  • 2023.05.06 更新前端面试问题总结(12道题)
  • VsCode的LivePreview插件应用
  • 【hivesql 已知维度父子关系加工层级表】
  • Pytorch实现感知器并实现分类动画
  • JAVA并发——什么是Java的原子性、可见性和有序性
  • git实操
  • composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
  • 【基础算法】倍增
  • 【开源项目】拆解机器学习全流程:一份GitHub手册的工程实践指南
  • 从儿童涂鸦到想象力视频:AI如何重塑“亲子创作”市场?
  • ABP VNext + 多级缓存架构:本地 + Redis + CDN
  • Linux的 iproute2 配置:以太网(Ethernet)、绑定(Bond)、虚拟局域网(VLAN)、网桥(Bridge)笔记250713
  • Prometheus 第一篇:快速上手
  • Vue配置特性(ref、props、混入、插件与作用域样式)
  • 第三章-提示词-解锁Prompt提示词工程核销逻辑,开启高效AI交互(10/36)