数论
Kalzn
qdu-打不到名额的菜鸡一枚
展开
-
威佐夫博弈扩展(HDU-6869 Slime and Stones)
威佐夫博弈扩展第i个奇异局面为:a[i]=⌊1−k−k2+2k+52i⌋a[i]=\lfloor\frac{1-k-\sqrt{k^2+2k+5}}{2}i\rfloora[i]=⌊21−k−k2+2k+5i⌋b[i]=⌊3+k+k2+2k+52i⌋b[i]=\lfloor\frac{3+k+\sqrt{k^2+2k+5}}{2}i\rfloorb[i]=⌊23+k+k2+2k+5i⌋当k=0时,即为威佐夫博弈的结论。做差即可验证:b[i]−a[i]=⌊(k+1)i⌋b[i]-a[i]=原创 2020-09-04 14:59:17 · 317 阅读 · 0 评论 -
线性基
线性基性质1.原数集中的任意一个数字都能够通过线性基中的元素异或出来(这与线性基的构建方式有关)。2.原数集中的数字异或出来的值域与线性基中的元素以后出来的值域相等(通过上一条性质可知)。3.线性基中没有异或和为零的非空子集:现在假设存在这样一个子集使得b1,b2……bx的异或和为零,那么根据异或的性质能得出:b1=b2⊕b3⊕……⊕bx,既然b1已经能用除他之外的线性基元素表示出来,我们便没有必要再将b1放在线性集中。4.线性基中的选取元素的每一种方案,都对应一个异或值,不存在多种选取方案对应同一原创 2020-08-31 13:48:38 · 124 阅读 · 0 评论 -
NTT快速数论变换算法学习
前置知识DFT离散傅里叶变换原根数学上已经证明,在复数域内,具有循环卷积特性的唯一变换是DFT,因此提出了以数论为基础的具有循环卷积性质的快速数论变换。下面开始介绍NTT,快速数论变换我们知道在复数域中有单位根:ωn=1\omega^n=1ωn=1,如果我们选取一个素数p,显然有ωn≡1(mod n)\omega^n\equiv1(mod\ n)ωn≡1(mod n)设g为p的一个原根(素数一定有原根,即gp−1≡1(mod p)g^{p-1}\equiv 1(mod原创 2020-08-31 13:47:49 · 928 阅读 · 0 评论 -
基本数论常识和一些模板算法
同余类和剩余系全体正整数在模p后,按照余数分成的[0, p-1]的p个等价类,每个等价类就是一个模p同余类。全体同余类构成模p的剩余系 。在[1, p-1]中有φ(p)\varphi(p)φ(p)个于p互质的数,这些数所代表的同余类,构成p的简化同余类。简化同余类在模p乘法的代数系统中封闭成群。数论欧拉定理aφ(m)≡1(mod n)a^{\varphi(m)}\equiv1(mod\ n)aφ(m)≡1(mod n)当n为质数时,费马小定理an−1≡1(mod n)原创 2020-08-31 13:47:29 · 532 阅读 · 1 评论 -
FWT快速沃尔什变换及其应用
有要求我们对于两个序列,求解下列特殊卷积:1、按位或卷积Ci=∑j∣k=iAjBk(1)C_i=\sum_{j|k=i}A_jB_k\tag1Ci=j∣k=i∑AjBk(1)2、按位与Ci=∑j&k=iAjBk(2)C_i=\sum_{j\&k=i}A_jB_k\tag2Ci=j&k=i∑AjBk(2)3、异或卷积Ci=∑j⊕k=iAjBk(3)C_i=\sum_{j\oplus k=i}A_jB_k\tag3Ci=j⊕k=i∑AjBk(3)三者原创 2020-08-31 13:46:39 · 286 阅读 · 0 评论 -
杜教BM (线性齐次递推式推演,无define)
下面是模板代码:#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <iostream>#include <cassert>using原创 2020-05-10 22:35:15 · 395 阅读 · 1 评论 -
FFT前置知识及FFT\FFT分治
首先依次介绍FFT(快速傅里叶变换)前置知识:复数及单位根 复变函数欧拉定理单位根三大引理多项式的系数与点值表示法多项式的求值与插值(顺介绍拉格朗日插值法)向量卷积复数及单位根我们知道复数可以写成z=a+biz=a+biz=a+bi,其中aaa为实部,bibibi为虚部.而且一个复数可以在一个复平面上表示出来,而我们可以将其写成极坐标的形式z=r(cosθ+isinθ)z=r(co...原创 2020-02-26 22:35:08 · 619 阅读 · 0 评论 -
莫比乌斯函数及其反演定理
定义,求法,打表及反演定理在这篇博客进行了介绍给出两个反演公式f(n)=∑d∣ng(d)⟺g(n)=∑d∣nμ(d)f(nd)(1)f(n)=\sum_{d|n}g(d)\Longleftrightarrow g(n)=\sum_{d|n}\mu(d)f(\frac{n}{d})\tag1f(n)=d∣n∑g(d)⟺g(n)=d∣n∑μ(d)f(dn)(1)f(n)=∑d∣ng(d)⟺...原创 2020-02-05 20:59:10 · 569 阅读 · 0 评论 -
杜教筛(概念及模板)
功能杜教筛可以在非线性的时间内求出极性函数的前缀和。洛谷给出的模板:对于n(n<231n<2^{31}n<231)求出:ans1=∑i=1nφans_1=\sum^{n}_{i=1}\varphians1=∑i=1nφ...原创 2020-02-05 16:06:37 · 602 阅读 · 0 评论 -
博弈/k倍动态减法(HDU2486 A simple stone game)
题目链接最近搞了搞博弈论。发现了这个k倍动态减法。。看了不少题解仍然是不知所云。无奈只能先记下来板子。对于我们构造出的序列a。如果n在这个序列n里面,就得出先手必输。否则,先手可以那最小的构成a[h]数量的石块。下面是ac代码:#include <iostream>#include <cstdio>#include <cmath>#include ...原创 2019-10-25 16:15:51 · 249 阅读 · 0 评论 -
线性递推式计算模板(知前几项跑第n项,高斯消元+矩阵快速幂)
注:本模板常数较大本模板适用于:如果有递推式满足:f[n]=k1f[n−1]+k2f[n−2]......kmf[n−m]+kcf[n] = k_1f[n-1] + k_2f[n-2]......k_mf[n-m]+k_cf[n]=k1f[n−1]+k2f[n−2]......kmf[n−m]+kc其中所有数都在有理数的范围中。在其中某数不是正整数时:该数表示为乘逆元后取模mod...原创 2019-10-14 16:36:57 · 225 阅读 · 0 评论 -
高斯消元/矩阵快速幂(2019沈阳网络赛 K. Guanguan's Happy water)
题目链接比赛感觉这个题感觉难到炸裂,不知道为啥过这么多,明明b题更简单的说。。赛后知道数据水暴力可以过。woc?我们正解a出来的感觉好亏啊。。不然b就有时间了。题解:先高斯消元求出q,然后跑矩阵快速幂就行了。注意的是:高斯消元的所有除,改成乘逆元就行了。。下面是ac代码:#include<iostream>#include<cstdio>#include<...原创 2019-09-14 18:26:51 · 278 阅读 · 1 评论 -
斯特林数(HDU - 2674 N!Again)
题目链接通过这道题,我们学习斯特林数的概念,性质。斯特林数在此暂记为S[i][j] (i >= j) 斯特林数的意义是将i件不同的物品,分成j组后,每一组围成一个圈,这样的不同组合方式的个数例如S[5][5] 即,将5个不同的物品分成5组,每一组围成圈的组合方式,显然,S[5][5] = 1;又例如S[4][1],将4个物品分成1组圈,S[4][1] = 6;共有: 1 ...原创 2019-07-26 20:31:53 · 136 阅读 · 2 评论 -
数论散点(更新中)
Miller_Rabin素数测试:一次通过测试的数字,有(3/4)的几率是素数。多次测试即可。下面是示例模版(摘自大佬博客):long long gcd(long long a,long long b) { if (b == 0) return a; return gcd(b,a%b);}long long mul(long long a,long long b,long...原创 2019-07-31 15:24:45 · 224 阅读 · 0 评论 -
博弈论sg函数/补漏(CF1194D 1-2-K Game)
sg函数是一个比较简单的知识点,但是一直没有学,现在学一下。sg函数类似dp,即从阶段状态推导总体。只不过,sg函数的阶段状态只有两种1.先手必败, 此时,sg函数应该是非零正数(笼统概括,下面细说)‘2.先手必胜,此时,sg函数应该是0就以这个题为例,我们设sg[k][n]是:可以走到i-1,i-2,i-k,距终点是n的sg函数。显然:1.sg[k][0] = 0, (因为这时...原创 2019-07-31 10:46:07 · 354 阅读 · 0 评论