一. 如何求最大公约数? 方法:创建一个变量gcd来依次存储公约数。 举例分析:10和20的公约数有1,2,4,5,10 那么如何找到10呢? 1.首先公约数小于或等于输入的数; 2.公约数能够被输出入整除。代码如下: 代码实现: for循环: while循环 ...
分类:
其他好文 时间:
2018-10-07 12:58:28
阅读次数:
158
参考博客 题意:n 个数字的数列,有m个询问:求出 L 到 R 的 gcd(最大公约数 ),然后问这整个序列中有多少个区间的 gcd 和这个一样。 分析:L 到 R的gcd直接用RMQ的ST算法求,第二步,我们可以枚举左端点 i 从1-n,对每个i,二分右端点,计算每种gcd值的数量,因为如果左端点 ...
分类:
其他好文 时间:
2018-10-06 17:09:36
阅读次数:
149
[题目链接] https://codeforces.com/contest/1011/problem/E [算法] 裴蜀定理 : 设为n个整数,d是它们的最大公约数,那么存在整数 使得 显然 , 我们只需求出a1,a2...an模k意义下的最大公约数G,然后枚举G的倍数即可 时间复杂度 : O(Nl ...
分类:
其他好文 时间:
2018-10-06 12:05:48
阅读次数:
131
题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? Update:加入了一组数据。 输入输出格式 输入格式: 两个正整数n和m。(n,m<=10^9) 注意:数据很大 输出格式: Fn和 ...
分类:
其他好文 时间:
2018-10-05 15:10:45
阅读次数:
150
题意:$\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)$ 题解:先枚举gcd,$\sum_{d=1}^n\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{n}{d} \rfloor}[(i,j)=1] ...
分类:
其他好文 时间:
2018-10-04 14:31:58
阅读次数:
213
"公约公倍" 输入两个正整数,求其最大公约数和最小公倍数。 输入格式 每行输入两个正整数 a,b(1≤a,b≤10^4)。 输出格式 输出两行,分别是 a,b的最大公约数和最小公倍数。 样例输入 2 3 样例输出 1 6 问题链接 : "JSK 391 公约公倍" 问题描述 :(略) 问题分析 : ...
分类:
Web程序 时间:
2018-10-04 09:31:25
阅读次数:
173
给定一个数列$a_1,a_2,...,a_n$?,支持两种操作 1 l r x,猜测数列中[l,r]位置上的数的最大公约数$x$,判断这个猜测是否是接近正确的。如果我们可以在数列[l,r]位置中改动至多一个数使得它们的最大公约数是x,那么这个猜测就被认为是接近正确的(注意我们不需要在数列中进行实际的 ...
分类:
其他好文 时间:
2018-10-03 00:43:28
阅读次数:
114
当年没填起来的坑,迟早会再一次掉进去!!!想想还是将现在自己会用了的部分记录下来,以后再做补充。 欧几里得算法: 到目前为止也只是用来求一下两个整数的最大公约数(感觉又是一个巨大无比的坑)。暂时先把这个用法记下来吧。 扩展欧几里得算法: 同样为自己挖了一个巨大无比的坑,需要自己慢慢去填满;上代码吧还 ...
分类:
编程语言 时间:
2018-10-02 22:14:55
阅读次数:
277
【辗转相除法求GCD】 欧几里得法求GCD效率较辗转相减法求GCD而言效率要高得多。 算法原理:gcd(a,b)=gcd(b,a mod b) 首先我们可以假设a=k?b+ra=k?b+r(其中的r代表着a/b的余数,也就是a%b的结果) 1.首先我们假设d是a和b的最大公约数,则我们可以知道 a可 ...
分类:
编程语言 时间:
2018-10-02 20:31:58
阅读次数:
146
题目描述 给定一个长度为N的数列A,以及M条指令 (N≤5*10^5, M<=10^5),每条指令可能是以下两种之一:“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。“Q l r”,表示询问 A[l],A[l+1],…,A[r] 的最大公约数(GCD)。 输入 第一行两 ...
分类:
其他好文 时间:
2018-10-01 11:53:58
阅读次数:
170