Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple)。对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数。例如,LCM(6, 8) = 24。回到家后,Crash还在想着课上学的东西,为了研究最小公倍数,他画了
分类:
其他好文 时间:
2016-03-07 19:00:22
阅读次数:
245
比较愚钝,一点点数论花了好长时间才弄明白,小小总结下。 ①最大公约数 (辗转相除法) Function gcd(a,b:longint):longint; begin if b=0 then gcd:=a else gcd:=gcd(b,a mod b); end; ②最小公倍数 lcm(a,b)*
分类:
其他好文 时间:
2016-03-02 21:49:05
阅读次数:
156
http://poj.org/problem?id=2891 解线性模方程组。 比较坑爹,数据比较大,很容易溢出。 1 Program poj2891; 2 3 var m:int64; 4 5 a,r:array[1..30000000]of int64; 6 7 ans,x,y,lcm:int6
分类:
其他好文 时间:
2016-03-02 21:43:25
阅读次数:
149
gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm ( gcd就是gcd(a, b), ( ????? ) 简写你懂吗) 解释(不想看就跳过){ 首先,求一个gcd,然后。。。 a / gcd 和 b / gcd
分类:
其他好文 时间:
2016-02-18 21:22:09
阅读次数:
226
依次考虑一个数的倍数,两个数的倍数(lcm),三个数的倍数(lcm)。。。 会发现有这么一个规律,奇数个数时要加上情况数,偶数个数时要减去情况数。 一种只有10个数,用二进制枚举所有情况即可。 #include <cstdio> #include <algorithm> #include <cstr
分类:
其他好文 时间:
2016-02-18 00:03:29
阅读次数:
241
这个是某年noip什么题的加强版。 并无卵用?线性筛下质因子个数即可。然后答案就是2^(m/d的质因子个数) #include<iostream>#include<cstdio>#include<cstring>#define maxn 1000005using namespace std;int
分类:
其他好文 时间:
2016-02-12 16:19:46
阅读次数:
187
辗转相除法(又称欧几里得算法)是求最大公因数的算法 要求a,b的最大公约数(a>b),我们可以递归地求b,a%b的最大公约数,直到其中一个数变成0,这时另一个数就是a,b的最大公约数。 C++实现: int gcd(int a,int b){ retuen b?gcd(b,a%b):a; } 或:
分类:
其他好文 时间:
2016-02-03 20:54:38
阅读次数:
245
Problem Description The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbe
分类:
其他好文 时间:
2016-02-03 10:44:31
阅读次数:
130
大意是有n段路,每一段路有个值a,通过每一端路需要1s,如果通过这一段路时刻t为a的倍数,则需要等待1s再走,也就是需要2s通过。 比较头疼的就是相邻两个数之间会因为数字不同制约,一开始想a的范围是2-6,处理这几个数字互相之间的关系,还是想岔了。 正解应当是开60个线段树,因为2-6的LCM是60
分类:
其他好文 时间:
2016-02-02 20:40:09
阅读次数:
313
gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm ( gcd就是gcd(a, b), ( ????? ) 简写你懂吗) 解释(不想看就跳过){ 首先,求一个gcd,然后。。。 a / gcd 和 b / gcd
分类:
其他好文 时间:
2016-01-29 08:42:28
阅读次数:
197