数论——GCD

ACM数论专题1——gcd与lcm ACM数论专题1——gcd与lcm前言最大公约数和最小公倍数是什么?如何求得最大公因数和最小公倍数?最小公倍数的求解与证明求解证明最大公因数的证明与求解证明求解相关应用以及扩展公式相关应用太多了先挖坑吧扩展公式 前言 作为一个数学选手没有数学部分的总结是不完美滴~~ 既然有句话叫“数论只会gcd”,那就从gcd开始吧~ 最大公约数和最小公倍数是什么? 最大公因数1 也称最大公约数,指两个或多个整数... 阅读详情

ZOJ Problem Set - 3846

题意:

给 N 个数,任取两个数Ai、Aj,求出这两数的GCD,然后用GCD替换这两个数的值。
直至这n个数的值都相等为止,此时输出求GCD的次数,然后按顺序输出每次求GCD的对应的那两个数。
若求GCD的次数超出5*N次时仍未满足停止条件则输出 -1

思路:

只要出现1,就可以将其余的数都变成1,所以,我们从第一个数开始,
GCD(Ai,Ai+1) ,i++;一旦满足GCD(Ai,Ai+1) == 1,便可停止,然后用Ai(或Ai+1)与其他的数做GCD。如此一来求GCD的次数最多不会超过2n-2次。
若i=n-1后仍未出现1,则说明所有数都不会化为相同的数。所以输出 -1

AC代码如下:

#include <iostream>
#include <cstring>
#include <algorithm>
#include "stdio.h"
#include<fstream>

using namespace std;
#define Max_N 100002
int N;
int num[Max_N];

int kgcd(int a, int b) {
    if (a == 0) return b;
    if (b == 0) return a;
    if (!(a & 1) && !(b & 1)) return kgcd(a>>1, b>>1) << 1;
    else if (!(b & 1)) return kgcd(a, b>>1);
    else if (!(a & 1)) return kgcd(a>>1, b);
    else return kgcd(abs(a - b), min(a, b));
}
int main() {
    int times = 0;
    while(scanf("%d",&N)!=EOF) {
        bool exist_one = false;

        int tag = 0;
        times++;
        for(int i =0 ; i<N; i++)
            scanf("%d",&num[i]);
        for(int i =0; i<N-1; i++) {
            int temp = kgcd(num[i],num[i+1]);
            if(temp ==1) {
                exist_one = true;
                tag = i+1;//取较小的那个数
                break;
            }
            num[i] = temp,num[i+1] = temp;
        }
        printf("Case %d: ",times);

        if(exist_one) {
            printf("%d\n",tag+N-2);
            for(int i = 1; i<=tag; i++)
                printf("%d %d\n",i ,i+1);
            for(int i = tag; i>1; i--)
                printf("%d %d\n",i-1 ,i);
            for(int i =tag+1; i<N; i++)
                printf("%d %d\n",i ,i+1);

        } else {
            printf("%d",-1);
            printf("\n");
        }
        printf("\n");
    }

}

如有错误,还望指出!
转载请注明出处:http://blog.youkuaiyun.com/Big_Heart_C

C++数论—————洛谷P2568 GCD 题目描述: 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对。 输入: 一个整数N(1<=N<=10^7) 输出: 答案 输入样例: 4 输出样例: 4 思路分析: 这一题是一个较简单的模板题: 首先,我们先用欧拉筛法,求出1~N的所有质数, 其中我们在欧拉筛法中求出1~N的欧拉函数,而欧拉函数就是1~N-1中与... 阅读详情

相关推荐

数论学习笔记1——二进制算法求GCD

数论学习笔记1——二进制算法求GCD 又是一篇水解。 首先显然大家都知道如何用辗转相除法求最大公约数,其原理就是gcd(x,y)=gcd(x,y-x) 既然大家都知道我在这里就不证明了 贴下一行代码: inline ll gcd(ll x,ll y){ return !y?x:gcd1(y,x%y); } 但强大的你怎能止步于此,定要优化一下,其实原理也很简单 就是不断地除2 我们考虑当x=...

Limerence 748

数论gcd

gcd基本运算 gcd(a,b)=gcd(a%b,b)gcd\left( a,b \right) =gcd\left( a\%b,b \right)gcd(a,b)=gcd(a%b,b) 裴蜀定理 对于给定的正整数a,b,方程 a∗x+b∗y=ca * x+b * y=ca∗x+b∗y=c有解的充要条件为ccc是gcd(a,b)gcd(a,b)gcd(a,b)的整数倍。根据逆元定义aa∗≡1(mod b)a a^{*}\equiv 1(mod\ b)aa∗≡1(mod b),则 aa∗−

csdn_ggboy的博客 268

衡山派Luban-Lite系统SDIO无线网络配置实战:以D133CBV-QFN88开发板与RTL8189模组为例

本文详细介绍了在衡山派D133CBV-QFN88开发板上,为Luban-Lite系统配置SDIO无线网络的完整实战流程。通过配置SDMC接口、RTL8189 Wi-Fi驱动、lwIP协议栈及内核参数,并解决编译分区问题,最终实现Wi-Fi网络连接与测试,为嵌入式设备联网提供清晰指导。

weixin_35677363的博客 266

【蓝桥杯】简单数论1——GCD&LCM

蓝桥杯必考点:简单数论

荷叶田田的博客 6227

Spark on Yarn 高可用模式部署流程

本文介绍了如何配置Spark和Yarn的高可用(HA)环境,以确保在大规模数据处理中避免单点故障。

xhaoDream的博客 1444

【技术纵览】行为识别前沿模型演进:从CNN到多模态大模型

本文全面解析了行为识别技术从CNN到多模态大模型的演进历程,重点介绍了SlowFast、TimeSformer、VideoMAE和InternVideo等SOTA模型的核心创新与应用实践。通过对比分析各代模型在Kinetics-400等数据集上的表现,揭示了自监督学习和多模态融合如何推动行为识别准确率突破85%,并探讨了工业部署中的技术选型策略与优化方向。

weixin_29169505的博客 153

数论基础篇

欧几里得算法,扩展欧几里得算法,贝祖定理 唯一分解定理定义,应用 Eratosthenes筛法,素数定理 同余含义,运算性质,数根小知识 积性函数,完全积性函数 欧拉函数定义,公式,性质,欧拉定理,费马小定理 逆元公式以及由来......

m0_63492087的博客 2963

HC32F460 FPU实战:从零开启硬件浮点加速

本文详细介绍了如何在HC32F460开发板上启用和优化FPU(浮点运算单元),以显著提升硬件浮点运算性能。从工程配置、关键代码修改到实战优化技巧,全面解析FPU加速的实现方法,并分享常见问题的解决方案,帮助开发者避免常见陷阱,充分发挥HC32F460的硬件潜力。

weixin_42620340的博客 348

算法小课堂(三)数论gcd和ex_gcd

最大公约数(Greatest Common Divisor,简称GCD)指的是两个或多个整数共有约数中最大的一个。比如,6和15的最大公约数为3,而12和18的最大公约数为6。最大公约数在数论、代数和计算机科学中都有广泛的应用。

qq_62377885的博客 2020

基于stm32开发的红外循迹小车

2.L298N电机驱动模块:分别是5V,12V,GND,可以通过外加电源给驱动模块供电,IN1,IN2,IN3,IN4,EN1,EN2,通过给IN口不同的电平,可以达到控制电机正反转,EN口为使能口,可以通过给EN口不同的PWM波,来达到控制小车速度,1.红外循迹模块:检测黑线的原理是向外发射红外线,当没有遇到黑线的时候,返回回来,之后返回高电平,当遇到黑线的时候,红外被吸收,返回高电平,读取相应IO口的电平就可以知道小车此时的大致位置;模块有四个输入接口,分别连接四个TT马达,驱动小车运动;

2301_81374681的博客 1万+

【在 WSL2 GUI 中使用 pulseaudio 播放声音】

最近在搞一个Linux项目,由于WSL2中需要用到声音外放,无奈只能潜心研究。后来就使用了一种折中的方式替代,那就是pulseaudio。目前来讲WSL2对硬件外设的支持还是不太友好,关于USB的支持我之前在其他文章中已经论述过了,这里不讨论。1、Windows11别忘记打开声音2、可能有一定延迟,因为是通过网络传输的。3、效果的话只能见仁见智了,如果不能满足要求就安装一个实实在在的Ubuntu吧!

jiexijihe945的博客 4530

数论--gcd

gcd

m0_65170489的博客 277

十年芯片资深IC设计工程师面经系列(四)SDC约束

set_driving_cell:当我们的设计是模块级(Block level)的design时,我们的设计前面一般还有其他的设计,那么前面模块的输出便是我们模块的输入,5.1set_false_path:可以单独的时钟或者路径进行约束。set drive :当我们的设计是芯片级(Chip level)的顶层设计时,芯片外围电路要驱动的是负载较大的IO单元,故需要的驱动能力较强,:set_load 是指output端口的负载,设置的值会影响输出到端口的net上的电容,从而影响相应的路径延时。

weixin_47349046的博客 1773

【数论-一些关于gcd的公式的推导】

1.数论里面与gcd有关的考察点很多很多。下面就几个常用的式子来推导一下。 (1) 证明: (2) 证明: (...

YG爱木木 1137

058、时域降噪(Temporal Denoise):运动补偿与递归滤波在视频降噪中的应用

本文深入探讨了时域降噪(Temporal Denoise)技术在视频处理中的应用。作者通过车载环视项目案例,揭示了空域降噪的局限性,提出利用帧间信息进行降噪的核心思路。文章详细解析了递归滤波和运动补偿两大关键技术,指出递归滤波简单但易产生拖影,而运动补偿通过计算运动矢量解决此问题。作者还分享了多帧降噪方案的优势与算力挑战,并总结了噪声模型匹配、运动矢量一致性等实战调优经验。最后强调时域降噪需要与空域降噪平衡,指出调试工具的重要性,提出"在保证运动区域无鬼影的前提下追求信噪比"的实践原则,体现了算法复杂度与效

zzfmlxs的博客 92

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[c++]gcd(数论)

自己的一个小结 文章目录 题目描述输入输出样例输入样例输出提示思路看看代码有利于理解 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对? 输入 一个整数 1<=N<=1000000 输出 一个整数 样例输入 4 样例输出 4 提示 【样例解释】 (2,2),(2,4),(3,3),(4,2) 思路 (本文所有的P,均表示质数) ...

qq_43904786的博客 1588

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

常见数论模板-gcd,lcm

笔者今天闲的蛋疼,特意来分享两个常用的数论模板,gcd和lcm,不管你是否想要打算法赛,我认为你都需要学过。lcm-求最小公倍数,那就很简单了,高中学过的,知道两个数的最大公因数,就知道最小公倍数了。好的,首先介绍gcd,它的作用是求出两个数的最大公因数,而利用的数学原理是:辗转相除法。其算法过程为: 前提:设两数为a,b设其中a 做被除数,b做除数,temp为余数。笔者就分享到这里,比起更暴力的写法,这样写能在知道原理的前提下提高效率。=0则把b的值给a、temp的值给a;1、大数放a中、小数放b中;

cjejwe的博客 679

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

CodeForces 1459C 数论 GCD

GCD更相减损术应用

_int_me的博客 332

【CF】Day127——杂题 (数论 gcd | 数论 gcd | 博弈论 | 二分图判断 | 贪心 + 暴力 / 二分答案 | 数论 gcd + 动态规划)

数学题目意思就是让我们求得一个最小的 k,使得 gcd(x + k, y + k) > 1那么我们考虑 gcd 的性质:gcd(a, b) = gcd(a,b - a)则原式化简为 gcd(x + k, y + k) = gcd(x + k, y - x),此时显然简单很多了,即我们要找到一个 k,使得 x + k 与 y - x 不互质由于 y - x 是一个定值,所以我们提前计算即可,那么现在考虑计算 k。

qq_61422664的博客 637

简单数论总结1——gcd与lcm

并不重要的前言   最近学习了一些数论知识,但是自己都不懂自己到底学了些什么qwq,在这里把知识一并总结起来。 也不是很难的gcd和lcm   显而易见的结论:   为什么呢?   根据唯一分解定理:         a和b都可被分解为素因子的乘积,形如:   则显而易见的有一下结论:       相乘,得:     得证 几种求gcd的算法  ...

weixin_34137799的博客 263

蓝桥杯数论通关系列(一)LCM与GCD

如果理解有困难可以先看这篇文章:【数论中非常非常基础的知识 - 优快云 App】LCM,即最小公倍数的计算。GCD,即最大公约数的计算。LCM与GCD可以称为数论中最重要,最基础的算法,可以称之为数论的根基。其中,GCD又要更重要一些,LCM基本都可以通过GCD得到,因此,本文主要讲述GCD算法。

2301_81317457的博客 767

数论-GCD和LCM

GCD

UCL之路 441

GCD与LCM【数论】

题目大意: 给出两个数的GCDGCDGCD和LCMLCMLCM,求这两个数的最小差值。 IuputIuputIuput 6 36 OutputOutputOutput 6 思路: 一道数论题。 我们设这两个数分别为xxx和yyy且x≤yx≤yx\leq y,g=gcd(x,y)g=gcd(x,y)g=gcd(x,y),l=lcm(x,y)l=lcm(x,y)l=lcm(...

stoorz 349

数论(一)——素数,GCD,LCM

这是一个数论系列:) 一、素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的。对 a = 2,满足的非素数 n 是存在的。 比如 n = 341 = 11 × 31 对于整数 a,称满足的合数为以 a 为底的伪素数。 经测试, 前 10 亿的自然数中,同时以 2 和 3 为底的伪

Coding Space 952

【数论】GCD

F. GCD-GCD-GCD [ Problem 4045 ] Description 给你两个数a,m; 问你在 [0,m − 1] 范围内有几个数 x 满足gcd(a,m) = gcd(a + x,m); Input 第一行一个整数T; 接下来T行,每行两个整数a,m; 1 ≤ a < m ≤ 1e9 Output 针对每两个数,输出满足条件的x的数量。 Samples Input Copy 3 4 9 5 10 42 9999999967 Output 6 1 999999996

小明的博客 962

HDU 1695 GCD (数论)

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1695题意:1&lt;=x&lt;=n,1&lt;=y&lt;=m,中有多少对gcd(x,y)=k,其中gcd(x,y)和gcd(y,x)算一种。题解:第一种思路:今天做了好几道关于GCD的题目,可以抽象出1&lt;=x&lt;=n/k,1&lt;=y&lt;=m/k多少对gcd(x,y)=1,那么就和新...

lamborghini1993 1842
上一篇: 水题
下一篇: 贪心算法
Big_Heart_C
博客等级 码龄12年 4粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值