1.最大公约数(GCD)
(1)如果a,b全为0,GCD不存在
(2)如果a、b其中之一为0,则GCD为a、b中非零的那个
(3)如果a、b都不为0,则使新的a=b,b=a%b,然后重复过程。
非递归
int gcd(int a, int b){
while (b != 0){
int t = a%b;
a = b;
...
分类:
其他好文 时间:
2016-05-12 19:23:50
阅读次数:
108
链接:http://acm.neu.edu.cn/hustoj/problem.php?id=1694
题意:给定多个n,求LCM(1~n)/pi{pi为1~n中的素数}。
分析:因为n太大有10^14,我们得观察一些性质才行。因为要求的是最小公倍数然后除掉所有的质数,这里很明显大于sqrt(n)的素数就没意义了,因为最后答案中留下的只能是指数大于1的素数。那么我们就将素数范围缩小到了10^7...
分类:
其他好文 时间:
2016-05-12 16:42:53
阅读次数:
164
题目链接 题意:定义"beautiful number"为一个数n能整除所有数位上非0的数字 分析:即n是数位所有数字的最小公倍数的倍数。LCM(1到9)=2520。n满足是2520的约数的倍数。dp[len][val][lcm]一维为数的位数,一维为%2520的值(保存原数不可能,也没必要,252 ...
分类:
其他好文 时间:
2016-05-10 11:01:38
阅读次数:
299
时间:2016-05-09 18:53:56 星期一 题目编号:[2016-05-09][51nod][1012 最小公倍数LCM] 题目大意:求a和b的最小公倍数 #includeusing namespace std;typedef long long ll;ll gcd(ll a,ll b){... ...
分类:
其他好文 时间:
2016-05-09 20:14:55
阅读次数:
164
公倍数之间的情况都是一样的,有循环节。 注意min(a,b)>t的情况和最后一段的处理。C++写可能爆longlong,直接Java搞吧...... ...
分类:
其他好文 时间:
2016-05-08 13:32:06
阅读次数:
102
最小公倍数
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。
但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。我们希望寻找到能除尽1至n的的每个数字的最小整数m.
输入
多组测试数据(少于500组)。...
分类:
其他好文 时间:
2016-05-06 12:35:36
阅读次数:
188
代码: 测试: 原理: 第一个最大公约数使用的2300年前被发明的欧几里得算法求得,大致原理为: 第二个最小公倍数更简单。 是不是So Easy! ...
分类:
编程语言 时间:
2016-05-01 14:43:48
阅读次数:
199
Description 给定一张N个顶点M条边的无向图(顶点编号为1,2,…,n),每条边上带有权值。所有权值都可以分解成2^a*3^b的形式。现在有q个询问,每次询问给定四个参数u、v、a和b,请你求出是否存在一条顶点u到v之间的路径,使得路径依次经过的边上的权值的最小公倍数为2^a*3^b。注意 ...
分类:
其他好文 时间:
2016-05-01 12:17:25
阅读次数:
415
暴力的做法就是直接找到所有a,ba,b都小于等于某个询问的边然后并查集合并,维护每个集合的a,ba,b得最大值看是否等于询问的a,ba,b
然后就可以考虑分块,把边按照aa排序,每隔n?√\sqrt{n}分为一块
块前的按照bb值排序按顺序插入,块内的暴力判断,并查集合并,每次都把块内合并的记录下来,处理完某个询问时就撤回并查集的操作
块的大小为n?√\sqrt n可能会TT 改成n?log...
分类:
其他好文 时间:
2016-04-29 19:29:03
阅读次数:
142