数论
ming_514
这个作者很懒,什么都没留下…
展开
-
HDU-2669 拓展欧几里得
题目一大推 其实都没用,昨天训练赛看到a*x+b*y= 1;就想到了拓展欧几里得,直接写就可以,在取结果的时候注意,需要x = (x % b + b)%b ; 防负数就可以了昨天写这个模板还是写的有点慢~~还需要更加熟练Girls are clever and bright. In HDU every girl like math. Every girl like to solve mat原创 2017-07-01 08:11:37 · 234 阅读 · 0 评论 -
poj 2115 拓展欧几里德
这个题很头疼啊,昨晚做的时候没有写出来,板子忘了,也不会推,数学是真的菜。这个题进行分析容易得到A + nC = B(mod 2^k)也就是 nC = B - A(mod2^k)就是求解模线性方程。 我们将模线性方程变形 x*C + y*2^k = B - A(mod2^k) 也就是求这个不定方程的x 最小正整数解 考虑对a*x + b*y = gcd(原创 2017-05-20 11:09:05 · 197 阅读 · 0 评论 -
poj 1995 快速幂取模
最近做到的一个模板题,难度一般,可以学习一下快速幂,附上取模运算规则, /* 取模运算规则 (a + b) % p = (a % p + b % p) % p (1) (a - b) % p = (a % p - b % p) % p (2) (a * b) % p = (a % p * b % p) % p (3) a ^ b % p = ((原创 2017-05-18 14:46:16 · 257 阅读 · 0 评论 -
uva-11149 倍增法矩阵快速幂
题目的意思比较好理解,就是求等比矩阵的和,然后训练赛上,去怼矩阵快速幂,然后没怼过,超时,后来比赛结束,说是倍增法加矩阵快速幂去学了了一波,发现高中都学过,看来就是自己不会用,先说一下倍增法用来求等比数列求和,是一种速度比较快的方法,下面介绍一下倍增法的原理的值。对于这个问题,用二分解决比较好。(1)当时,(2)当时,那么有 (3)当时,那么有 真的原创 2017-07-30 16:45:55 · 308 阅读 · 0 评论 -
uva 11426 欧拉函数
这也是训练赛上的一个题目,题目的要求很简单,就是那个代码所展示的,然后,然后当时就不会了,后来才知道可以用欧拉函数求gcd(i,j);先说一下如何分析这个题目我们令f(n) = gcd(1, n) + gcd(2, n) + ... + gcd(n-1, n)则对应的结果s(n) = f(2) + f(3) + ... + f(n)所以s(n) = s(n-1)+f(n)原创 2017-07-30 16:57:59 · 268 阅读 · 0 评论