数论
Falling~
这个作者很懒,什么都没留下…
展开
-
数论--莫比乌斯反演&分块--bzoj2154 Crash的数字表格
大佬博客http://www.cnblogs.com/cjyyb/p/8253033.html//1.mu[1] = 1//2.long long 注意//3.2次分块好神奇,而且min(n/ (n/ i),m/ (m/ i))可以解决2个变量一起分块//4.直接预处理1e7超时,max(n,m) 7s+#include <cstdio>#include <i...转载 2018-09-05 11:23:51 · 228 阅读 · 0 评论 -
数论-gcd与积性函数-poj2480
求sum(gcd(i,N)),1 <= i <= N//1.gcd(i,m * n) 当m与n互质时,= gcd(i,n) * gcd(i,m) 因此他为积性函数//2.sum(gcd(i,N)) 积性函数的和也为积性函数//3.f(N) = sum(gcd(i,N)) = sum(p * phi(N / p)) p为N的因子//4.f(p^r) = r * (p^r - p^r-1)...原创 2018-07-12 21:22:31 · 547 阅读 · 0 评论 -
数论--威尔逊定理--hdu2973 YAPTCHA
https://vjudge.net/problem/HDU-2973威尔逊定理:若p为质数,p | (p-1)! + 1,即 (p-1)! = p - 1 = -1 (mod p)根据题意,Sn = f(1) + f(2) + ... + f(k)若(3 * k + 7)为质数,f(k) = 1。若(3 * k + 7)不为质数,f(k) = 0。求f(x)前缀和即可得S...原创 2018-07-18 16:58:51 · 293 阅读 · 0 评论 -
数论--积性函数--因子和函数&因子个数函数
因子和函数f(n) = n的所有正因子之和因子个数函数g(n) = n的所有正因子个数1.定理:如果f是积性函数,f的和函数(F(n) = sum(f(d) ,d为n的因子) )也是积性函数2.因子和函数、因子个数函数都是积性函数3.n = p1^a1 * p2^a2 * ... * ps^as因子和函数f(n) = p1^(a1+1) -1 /(p1 - 1) * p2^(a...原创 2018-07-18 16:50:39 · 2605 阅读 · 0 评论 -
容斥原理 求[1..m]中与m不互质的数的个数
//容斥原理的实现//1.队列数组//2.dfs//3.二进制表示//队列数组是枚举所有情况,可能有时候空间上存不下?dfs的优点是用时间换空间ps:1.int fac[15]//13! > 1e8,所以质因子的个数小于15 //long long 的话21! > ull,25肯定够2.二进制注意空集不要算原创 2018-04-20 21:45:35 · 618 阅读 · 0 评论 -
数论--中国剩余定理
x % m[i] = a[i]当m[i]两两互质时,是一元线性同余方程组的特殊情况,可以用中国剩余定理来解。M = m1 * m2 * ... * mrMi = M / m[i]由于Mi和m[i]互质,Mi * Pi = 1 (mod m[ i ]) 即Mi关于模m[i]有逆元x = a1 * M1 * P1 + a2 * M2 * P2 + ...x = sum (a[i原创 2018-04-06 14:46:13 · 303 阅读 · 0 评论 -
数论--高次同余方程 A^x = B (mod p) --Baby Step Giant Step 及扩展BSGS算法
http://www.cnblogs.com/wondove/p/8590582.html这篇博客讲得挺好哒当a与n互质时,a对于mod n才有逆元1.欧拉公式 a ^ phi(p) = 1 (mod p) 要求a与p互质2.扩展gcd均可以解决逆元的问题高次同余方程 A^x = B (mod p) 求x1.A与p互质m = [sqrt(p)] (分块)令x = i * m + jA ^ x = ...原创 2018-03-17 21:02:08 · 1849 阅读 · 0 评论 -
数论--母函数--hdu1246 自共轭Ferrers图
1.利用Ferrers图像可得关于整数拆分的几个结果。(a)整数n拆分成最大数为k的拆分数,和数n拆分成k个数的和的拆分数相等。解释:因整数n拆分成k个数的和的拆分可用一k行的图像表示。所得的Ferrers图像的共轭图像最上面一行有k个格子。(b)整数n拆分成最多不超过m个数的和的拆分数,和n拆分成最大不超过m的拆分数相等。(c)整数n拆分成互不相同的若干奇原创 2018-03-24 22:17:17 · 847 阅读 · 0 评论 -
数论--素数测试
//nefu120#include #include #include using namespace std;const int maxp = 63;typedef long long ll;//将相乘改为相加计算ll mul_mod(ll a,ll b,ll mod)//a * b % mod原创 2018-03-11 14:52:46 · 171 阅读 · 0 评论 -
求最大公约数--Stein算法
Stein算法伪代码:Stein算法(假设0r←0while b>0 do if a偶,b偶 then a←a>>1 b←b>>1 r←r+1 else if a偶,b奇 then a←a>>1 else if a奇,b偶 then b←b>>1 else if a奇,b奇 then a←(a-b)>>1转载 2018-03-17 10:16:35 · 825 阅读 · 0 评论 -
数论-莫比乌斯-hdu1695 GCD
给定b,d,k,[1,b],[1,d]中取x,y,求gcd(x,y) = k的(x,y)对数ps:(1,2)和(2,1)相同简化为gcd(x / k,y / k) = 1gcd(x,y) = 1,x,y范围为[1,b / k],[1,d / k]1.欧拉函数+容斥2.莫比乌斯大佬题解https://www.cnblogs.com/iiyiyi/p/5635303.html1.欧拉函数+容斥#inc...转载 2018-07-13 21:05:33 · 226 阅读 · 0 评论 -
数论--线性求逆元&线性求阶乘逆元
线性求逆元https://blog.csdn.net/qq_34564984/article/details/52292502线性求阶乘逆元const int mod = 1e9 + 7;ll fac[maxn];//fac[i]表示i!ll inv[maxn];//inv[i]表示i!的逆元ll qk_mod(ll a,ll b,ll mod){ ll ans =...转载 2018-07-28 16:58:41 · 704 阅读 · 0 评论 -
数论--n条不相交路径&行列式计算--hdu 5852 Intersection is not allowed!
题意:n*n矩阵,k个棋子在第一行,将他们移到最后一行,这k条路径不相交的方案数有多少1.n条不相交路径(严格)Lindstrom-Gessel-Viennot Lemma对于一张无边权的DAG图,给定n个起点和对应的n个终点,这n条不相交路径的方案数为det() (该矩阵的行列式)其中e(a,b)为图上a到b的方案数2.行列式计算https://blog.csdn.n...转载 2018-07-28 19:56:06 · 625 阅读 · 0 评论 -
数论--筛法变形--ACM-ICPC 2018 南京赛区网络预赛 J.Sum
https://nanti.jisuanke.com/t/30999f[i]表示将i分解为2个数相乘的方案数,i = a*b,且a,b均不能有平方因子。求f[i]前缀和n = p1^a1 * p2^a2 * p3^a3 * ... * pk^ak= a * b若a1 = 1,则a可能有p1,可能没有,f[n] = f[n / p1] * 2a1 = 2,则a必须选p1(a,...原创 2018-09-02 17:07:35 · 201 阅读 · 0 评论 -
数论--常见公式
1. 1 * 1! + 2 * 2! + 3 * 3! + ... + n * n! = (n + 1)! - 1证明 (n + 1)! - n! = n * n!2! - 1! = 1 * 1!3! - 2! = 2 * 2!...(n + 1)! - n! = n * n!sum = (n + 1)! - 1 = 1 * 1! + 2 * 2! + 3 * 3! + ...原创 2018-09-01 20:04:09 · 1216 阅读 · 0 评论 -
数论--因子&容斥&bitmask--codeforces1007b Pave the Parallelepiped
给A,B,C,求他们的因子(a,b,c)的三元组的个数(a|A ,b|B,c|C,不考虑顺序)A,B,C有重复因子很麻烦,所以考虑容斥//1.因子总是和bitmask在一起//要么是对因子用位压缩//要么用二进制表示是a,b,c谁的因子,并且容斥//2.m个不同的球有放回的取n个 = C(m + n - 1,n)//3.__builtin_popcount(i) 返回i二进制中1的...转载 2018-08-29 21:07:56 · 253 阅读 · 0 评论 -
曼哈顿距离&切比雪夫距离--hdu4311&hdu4312
1.曼哈顿距离=|x1 - y1| + |x2 - y2| + ... + |xn - yn|切比雪夫距离=max(|x1 - y1| , |x2 - y2| , ... , |xn - yn|)2.给n个点,求其中一个点到其他点曼哈顿距离和,的最小值 复杂度为O(nlgn)3.通过观察将坐标轴顺时针旋转45度并将所有点的坐标值放大sqrt(2)倍,切比雪夫距离便是所得到的...转载 2018-08-24 01:40:35 · 575 阅读 · 0 评论 -
最远曼哈顿距离 n维--poj2926 Requirements
给定一些n维向量[x1,...xn],求这些向量中,最远曼哈顿距离。曼哈顿距离[pi,pj] = sum(|xi_1 - xj_1| + |xi_2 - xj_2| + ... + |xi_n - xj_n|)以2维为例:pi -> (x1,x2)pj -> (y1,y2)|x1 - y1| + |x2 - y2|= max(x1 - y1 + x2 - y2 ...转载 2018-08-23 17:13:25 · 726 阅读 · 0 评论 -
数论--求小于n的与n互质的数的和
给出一个N,求1..N中与N互质的数的和if gcd(n,i)=1 then gcd(n,n-i)=1 (1<=i<=n)反证法: 如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0 而n%k=0 那么必须保证i%k=0 k是n的因子,如果i%k=0那么 gcd(n,i)=k,矛盾出现;...转载 2018-07-22 18:17:23 · 1825 阅读 · 0 评论 -
数论--阶乘幂&扩展欧拉定理--牛客练习赛22E 简单数据结构1
https://www.nowcoder.com/acm/contest/132/E给定数组A,有2种操作1.区间更新,a[l]...a[r]都加x2.求阶乘幂 a[l] ^ (a[l+1] ^ (...a[r-1] ^ a[r]))解:区间更新用树状数组A[i]记录原数组delta[i]记录a[i]到a[n]共同的增量xdelta[i] = i * delta[i...原创 2018-07-22 17:39:59 · 826 阅读 · 2 评论 -
数论--阶乘幂&扩展欧拉定理--codeforces 906d Power Tower
给定数组w,q次查询,求w[ql]^ ( w[ql + 1] ^ ( ... w[qr - 1] ^ (w[qr]) ) ) % m扩展欧拉定理 (a,m) != 1时,if(b >= phi(m)) a^b % m = a ^ (b % phi(m) + phi(m) ) % mif(b < phi(m)) a^b % m = a ^ b % m(快速幂)1.快速幂和...原创 2018-07-21 10:16:55 · 563 阅读 · 0 评论 -
数论--p次方前n项和&伯努利数--Sum of Maximum
牛客网暑期ACM多校训练营(第一场)F Sum of Maximumhttps://www.nowcoder.com/acm/contest/139/F给定数组a,a[i]表示第i个位置可以在[1,a[i]]中任意取,求在每种情况下,数组最大值 的和。即数组最大值max * max为最大值的次数,求和。解:排序。a1,a2,a3, ... ,ai = x,aj = y, .....原创 2018-07-20 17:01:40 · 1193 阅读 · 0 评论 -
数论--n!的素因子分解中的素数p的幂为 [n / p] + [n / p^2] + [n / p ^ 3] +...
n!的素因子分解中的素数p的幂为 [n / p] + [n / p^2] + [n / p ^ 3] +...n! = 1 * 2 * 3 * ... * p * (p + 1) * ... * (2p) * ... * (p ^ 2) * ....* n类似筛法,将右边每隔p个数,除去一个p第一次,一共除去[n / p] 个pn! / (p ^ (n / p)) = 1 * 2原创 2018-03-11 10:46:51 · 1518 阅读 · 0 评论 -
数论--一元线性同余方程组 poj2891 Strange Way to Express Integers
求解 一元线性同余方程 ax = b (mod m)1.ax - my = b2.a * x' + m * y' = d = gcd(a,m) 中的x',y'可由扩展gcd求得3.a * (x' * b / d) + m * (y' * b / d) = b原方程的解x = x' * b / d4.且原方程有d个对于m不同余的解,分别为x,x + m / d,x + 2m /原创 2018-03-16 19:16:36 · 238 阅读 · 0 评论 -
数论--几何--笛卡尔原理
笛卡尔定理是关于平面几何中关于圆与圆相切时半径之间的数量关系。(1)若四圆两两外切,则 ;(2)若半径为r1、r2、r3的圆内切于半径为r4的圆中,则 。即4个圆外切,则他们曲率和的平方,等于2倍的曲率平方之和。(存在内切则该曲率取负号)原创 2017-08-19 20:44:04 · 1535 阅读 · 0 评论 -
快速幂取模
#include #include using namespacestd;typedef longlong ll;int main() { ll a,b,n; while (scanf("%lld%lld%lld",&a,&b,&n) !=EOF) { n --; a = a % b原创 2017-06-03 13:26:14 · 210 阅读 · 0 评论 -
辗转相除法
求最大公约数原创 2017-03-04 12:01:18 · 306 阅读 · 0 评论 -
区间筛
区间筛原创 2017-03-11 21:12:46 · 374 阅读 · 0 评论 -
扩展gcd
求a * x + b * y = d的整数解。原创 2017-03-08 15:18:02 · 393 阅读 · 0 评论 -
斐波那契数列--计算前后缀
hdu3117求[0,1e8]的F(n)的前后4位。输入:3536373839406465输出:9227465149303522415781739088169632459861023...41551061...77231716...75651.斐波那契数列前4位的计算通项公式 f[n]=(1/sqrt(5)) * { [(转载 2017-07-19 10:23:55 · 537 阅读 · 0 评论 -
斯特林公式--求阶乘近似值
n!≈√(2πn)·(n/e)^n求阶乘长度可取log10,向下取整再加1.(long long)((log10(4.0 *acos(0.0) * n)) *1.0 / 2 + * (log10(1.0 * n) - log10(exp(1.0))) )+ 1;原创 2017-06-03 13:00:39 · 1951 阅读 · 0 评论 -
数论--卡特兰数
Catalan 卡特兰数1,2,5,14,42,132,429...1.catalan(n) = C(n 2n)/(n + 1) 但是计算时一般不用,容易溢出2.c[0] = 1c[n + 1] = c[0] * c[n] + c[1] * c[n - 1] + ... + c[n] * c[0]3.c[0] = 1(n + 2) * c[n + 1] = (4 * n +转载 2017-08-14 21:25:48 · 303 阅读 · 0 评论 -
矩阵乘法优化--poj3318 随机矩阵
给定矩阵A,B,C,求检验A * B 是否等于C。n = 500普通矩阵乘法是O(n^3)但是如果用一个1 * n的矩阵和n * n矩阵相乘只需要O(n^2),所以可以用一个随机矩阵R * A * B ?= R * C//rand()随机生成[0,RAND_MAX]的数//如果想要[0,n]内的随机数//n比RAND_MAX小,取余//n比RAND_MA原创 2017-08-11 14:38:04 · 498 阅读 · 0 评论 -
位运算--集合的整数表示
n个元素的集合的子集S,用数字f(S) = sum{2 ^ i | 0 1.空集 02.只有第i个元素的集合 1 3.含有全部n个元素的集合 (1 4.判断第i个元素是否属于集合S if(S >> 1 & 1)5.向集合S中加入第i个元素 S | 1 6.从集合S中去除第i个元素 S & ~(1 7.集合S和T的并集 S | T8.集合S和T的交集 S & T转载 2017-08-21 20:42:18 · 484 阅读 · 0 评论 -
Ramsey定理--世界上任意6个人中,总有3个人相互认识,或互相皆不认识。
大于等于6个人中,总有3个人相互认识,或互相皆不认识。证明如下:首先,把这6个人设为A、B、C、D、E、F六个点。由A点可以引出AB、AC、AD、AE、AF五条线段。设:如果两个人认识,则设这两个人组成的线段为红色;如果两个人不认识,则设这两个人组成的线段为蓝色。由抽屉原理可知:这五条线段中至少有三条是同色的。不妨设AB、AC、AD为红色。若BC或CD为红色,则结论显然成立。若原创 2017-08-23 18:03:56 · 25750 阅读 · 0 评论 -
欧拉函数
欧拉函数原创 2017-03-15 16:43:14 · 254 阅读 · 0 评论 -
数论--勾股数
(a,b,c): a ^ 2 + b ^ 2 = c ^ 2当a为大于1的奇数2n+1时,b=2n^2+2n, c=2n^2+2n+1n=1时(a,b,c)=(3,4,5)n=2时(a,b,c)=(5,12,13)n=3时(a,b,c)=(7,24,25)当a为大于4的偶数2n时,b=n^2-1, c=n^2+1n=3时(a,b,c)=(6,转载 2018-02-03 17:52:57 · 713 阅读 · 0 评论 -
母函数--hdu1398 Square Coins
有1,4,9,16....17 * 17的硬币无数个,问能凑成n的方法有几种母函数G( x ) = ( 1 + x + x ^ 2 + x ^ 3 + ...) * (1 + x ^ 4 + x ^ 8 + x ^ 16 + ...) * (1 + x ^ 9 + x ^ 18 + x ^ 27 + ..) * ... x的指数表示能凑成的面值,x的系数表示方法数。原创 2018-02-02 15:10:11 · 237 阅读 · 0 评论 -
哈希--hdu1496
给定[-50,50]的a,b,c,d,x1,x2,x3,x4位于[-100,100],a * x1^ 2 + b * x2 ^ 2 + c * x3 ^ 2 + d * x4 ^ 2 = 0,的可能数。由于a * x1 &^ 2 + b * x2 ^ 2最多只可能有 1e4个值,用哈希可以减小数组转载 2017-11-26 19:43:57 · 217 阅读 · 0 评论 -
除法取模与逆元--hdu3970 Harmonious Set
。。。虽然不知道是怎么推出来的,答案是a(n) = 1/n * sum_{d divides n and d is odd}(2^(n/d) * phi(d)) phi : 欧拉函数答案对1e9 + 7取模。1.除法取模与逆元(a / b) % mod = (a * 1 / b) % mod设(a * 1 / b) % mod = (a * bs) % mod,bs是1原创 2017-09-09 19:53:14 · 453 阅读 · 0 评论