
数论
文章平均质量分 65
Wtothey
这个作者很懒,什么都没留下…
展开
-
母函数简单实现
转自:Preeee1.以一个问题为引例:重量为1,3,5g的砝码各两个,可以称出多少种重量不同的物品?构造母函数G(x)=(1+x+x^2)(1+x^3+x^6)(1+x^5+x^10),其中x的指数表示砝码的重量,x表示砝码。每个括号里代表的状态是取0个、取1个、取2个。得到的各个x^n前面的系数就是每种质量可以称出的方案数目。所得式子的个数就代表可以称出多少种的重量。2.再...转载 2019-12-15 12:18:26 · 178 阅读 · 0 评论 -
求组合数
方法一:递推,溢出问题C(n,m)=C(n-1,m-1)+C(n-1,m)方法二:取对数,精度问题log(c(n,m))= log( n!/(n-m)!) -log m! = log(n-m+1)+log(n-m+2)+...+log(n)-log(1)-log(2)-...-log(m)注意,log以2为底,用log性质,log(a)b=log a / log b方法...原创 2018-08-04 11:04:10 · 203 阅读 · 0 评论 -
康托展开和逆康托展开
康托展开:一种从全排列到自然数(即排列名次)的双射函数。 公式:,a[0]是指后面比首位数字小的数字个数,a[1]是指后面比第二位数字小的数字个数,其他同理,a[n-1]是0。本质其实是找比原数小的排列,所以保证数字小于各个位数字。 举例说明:“2431”,则a[0] = 1,比2小的数只有1,a[1] = 2,比4小的数有3、2、1,但是2出现过,所以a[1] = 2,同理,a[2] =...原创 2018-08-25 21:11:55 · 170 阅读 · 0 评论 -
基础数论模板
目录欧几里得算法(辗转相除)快速幂一般筛线性筛算数基本定理费马大小定理欧拉定理欧拉函数拓展欧几里得拓展欧几里得求逆元逆元打表欧几里得算法(辗转相除)LL gcd(LL a, LL b){ if(!b) return a; return gcd(b, a % b);}快速幂LL pow_mod(LL a, L...原创 2019-07-09 18:52:40 · 135 阅读 · 0 评论 -
欧拉函数与莫比乌斯函数 [模板]
质因数分解重要数论函数推一个欧拉函数和莫比乌斯函数的关系式:(忘记了下面的狄利克雷卷积,点这里狄利克雷+莫比乌斯反演)推导的:欧拉函数求单个phi值:int Euler(int n){ LL k = (LL)sqrt(n + 0.5); LL ans = n; for(int i=2; i<=k; ++i...原创 2019-08-16 14:58:55 · 511 阅读 · 0 评论 -
狄利克雷卷积+莫比乌斯反演+杜教筛
狄利克雷卷积狄利克雷卷积与数论函数构成群,四个性质:封闭性 结合律 逆元 幺元特殊卷积,互为逆元莫比乌斯反演欧拉函数+莫比乌斯函数点这里约数反演定义:反演:证明:(狄利克雷卷积) ...原创 2019-08-16 19:29:36 · 385 阅读 · 0 评论