数论
h_lizeming
这个作者很懒,什么都没留下…
展开
-
中国剩余定理
作用给出如下模方程组:其中mi(1<=i<=k)mi(1<=i<=k)两两互质,求解满足的最小x。中国剩余定理也称孙子定理,可以高效求解上述问题。 个人在学习的时候在网上也看过很多博客,但是他们都是反手一大段证明过程,看得我一脸懵逼。其实中国剩余定理很好理解的。首先我举一个经典到不能经典的例子(韩信点兵)举个孙子算经里的例子:(今有物不知其数,三三数...原创 2018-08-05 13:40:34 · 378 阅读 · 0 评论 -
UVA 11754 - Code Feat
题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中思路:LRJ大白例题,分两种情况讨论1、所有x之积较小时候,暴力枚举每个集合选哪个y,然后中国剩余定理求解2、所有x之积较大时候,选定一个k/x尽可能小的序列,枚举x * t + y (t = 1, 2, 3...)去暴力求解。#include <cstdi...转载 2018-08-05 13:43:55 · 307 阅读 · 0 评论 -
欧拉函数筛
之前碰到一道打表题目,用的就是欧拉函数筛,没什么好讲的直接贴代码 #define MAXD 4000010 const int N = 4000000; int phi[MAXD]; for(int i = 1; i <= N; i ++) phi[i] = i; for(int i = 2; i <= N; i ++) ...原创 2018-08-05 13:49:08 · 212 阅读 · 0 评论 -
uva 11426 GCD - Extreme (II) (神奇的GCD)
大意:给定正整数N,求出for(i=1;i<N;i++) for(j=i+1;j<=N;j++) G+=gcd(i,j);G的值。这道题目的意思就是(i,N)各个数的之间的最大公约数之和。这道题目有点小想法加上xjb乱搞 假设x,y互素,所以gcd(k*x,k*y)=k;所以就是求每一个数的欧拉函数,然后再跟新后的区间,a[j * i] +...原创 2018-08-05 14:09:16 · 258 阅读 · 0 评论 -
M - Help Hanzo
题目意思就是给定你一个数N,让你往下执行N组数据,每一组数据给会给你两个数a,b。问你在(a,b)之间然后这里告诉你一个范围就是b-a<10^5这道题目就是一个素数筛再加上区间映射。一开始上来想开个b那么大的数组,再暴力素数筛,看b那么大,不用说也知道没有戏了,想到之前一个数论结论(当一个数都不能被10^5里面的素数整除的话就证明这个数是素数)。然后现在就是一个空间映射问题了,当b&...原创 2018-08-05 15:33:00 · 279 阅读 · 2 评论 -
N - Trailing Zeroes (III)
题意:给你一个数Q,代表N!中 末尾连续0的个数。让你求出最小的N。定理:求N!中 末尾连续0的个数尾部为0是由于5*2 或*10得来,因为有5肯定有2,所以只用算5和10,然后10又是5的倍数所以只用算有多少个5.但是注意的是 5有1个5 10有一个5 15有一个5 20有一个5 25有二个5 125有三个5然后就是用二分查找算出N;注意的是 别用递归写二分 不然会T掉...原创 2018-08-05 15:38:22 · 190 阅读 · 0 评论