数论
Aaplloo
天天都想摆
展开
-
FWT (快速沃尔什变换)
前言 自己学懂就行了,博客以后看心情补吧。 Code: LL t[MAXN], A[MAXN], B[MAXN], c[MAXN]; void DWT_Or(LL l,LL r) { if (l == r) return ; LL Mid = (l + r) / 2; for (Int i = l; i <= Mid; ++ i) t[i - l + Mid + 1] = (t[i] + t[i - l + Mid + 1]) % Mod; DWT_Or(l, Mid); DWT_原创 2020-06-08 21:37:06 · 158 阅读 · 0 评论 -
[学之前我以为很简单的自闭数论]——Pell方程的求解 (咕咕咕)
Fuck1 Fuck2原创 2020-06-05 10:50:44 · 546 阅读 · 0 评论 -
[NOI Online3] C.优秀子序列 (FST咕咕咕)
首先,我们可以得到一个简单的3logai3^{log_{ai}}3logai的暴力dp+子集枚举,这样是3183^{18}318的复杂度,1e8左右,2s的时间本来是妥妥地过的,结果CCF机子太烂跑T了。先给出代码吧。 Code: inline void Sieve(LL x) { Phi[1] = 1; for (Int i = 2; i <= x; ++ i) { if (! Phi[i]) { Prime[++ Prime[0]] = i; Phi[i] = i -原创 2020-05-29 10:47:37 · 181 阅读 · 0 评论 -
[数论] EXBSGS(拔山盖世算法)
exBSGS 简单回顾,方程式为Ax≡B mod PA^x\equiv B\ mod\ PAx≡B mod P 首先,我们知道了如何n\sqrt nn 处理当 A,PA,PA,P 互质的情况。但是,如何推广到 PPP 为任意正整数的情况呢?这就是exBSGSexBSGSexBSGS了。 讲解 方程写为等式形式:Ax+kP=BA^x+kP=BAx+kP=B 此时,gcd(A,P)!=1gcd(A,P)!=1gcd(A,P)!=1,设其为 t=gcd(A,P)t=gcd原创 2020-05-28 16:23:49 · 262 阅读 · 0 评论 -
Sequence(数论分块 + 矩阵加速)
题目 思路 很简单的一道数论分块加矩阵加速。 Code: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define MAXN 5 #define LL long long #define Mod 1000000007 #define Int register long long using namespace std; inline void原创 2020-05-21 16:55:53 · 134 阅读 · 0 评论 -
数论分块
首先一道例题 题意 给定n,k<=1e9n,k<=1e9n,k<=1e9,求∑i=1nk%i\sum_{i=1}^{n}k\%ii=1∑nk%i 直接算肯定是要T的,我们想办法对k%ik\%ik%i进行变形 k%i=k−i∗kik\%i=k-i*\frac{k}{i}k%i=k−i∗ik原创 2020-05-21 16:02:22 · 123 阅读 · 0 评论 -
[VJ] Sequence (拓展Lucas)
题目——VJ 题意 求1−n1-n1−n的排列中不动点数量为 mmm 的排列数。 易得答案为C(n,m)⋅P(n,n−m)C(n,m)\cdot P(n,n-m)C(n,m)⋅P(n,n−m),其中PPP为错拍数。P的两种公式为P(n)=(n−1)∗[P(n−1)+P(n−2)]P(n)=(n-1)*[P(n-1)+P(n-2)]P(n)=(n−1)∗[P(n−1)+P(n−2)],P(n)=n...原创 2020-05-18 14:49:26 · 111 阅读 · 0 评论 -
[HAOI2018]染色 (容斥+NTT)
前言 又被虐爆了。 题目 题目 易看出是一道容斥相关的问题。 题目较为简单,直接讲解思路吧。 思路 首先我们推一波式子。 法一 思路来源于湘妹儿。 考虑枚举iii为选择iii种颜色的合法方案数 设方案数为C(m,i)∗F(n,i)∗G(n−iS,m−i)C(m,i)*F(n,i)*G(n-iS,m-i)C(m,i)∗F(n,i)∗G(n−iS,m−i) F(i,j):iF(i,j):iF(i,j):i个格子中填入jjj中颜色每种颜色SSS个的方案数 G(i,m−j):iG(i,m-j):iG(i,m−j):原创 2020-05-17 12:56:06 · 137 阅读 · 0 评论 -
exLucas - 拓展Lucas
对普通Lucas不熟悉的可以看看这篇博客 拓展Lucas 在使用普通Lucas时,要求模数为质数,因为要用到模数ppp的逆元。拓展Lucas用于处理ppp不为质数的情况。 具体操作如下: 首先,我们对ppp进行质因数分解得到:p=p1x1⋅p2x2⋅...⋅pmxmp={p_1}^{x1}\cdot {p_2}^{x2}\cdot...\cdot {p_m}^{xm}p=p1x1⋅p2x2⋅...原创 2020-04-27 16:14:06 · 117 阅读 · 0 评论 -
Lucas - 卢卡斯定理
Lucas定理 讲解 在求组合数CnmC_{n}^{m}Cnm时,由于nnn或mmm过大,传统使用阶乘求解的时间复杂度为O(n)O(n)O(n),即使使用对数优化,即: lnCnm=ln(n!)−ln(m!)−ln((n−m)!)\ln C_{n}^{m}=\ln(n!)-\ln(m!)-\ln((n-m)!)lnCnm=ln(n!)−ln(m!)−ln((n−m)!) 这样也只能用精...原创 2020-04-26 20:22:30 · 262 阅读 · 0 评论 -
Burnside定理 && Polya定理
学数论的上午注定是自闭的。 原作: By Lucky_Glass Burnside定理 主要是自己理解,简单的地方不多赘述。 置换 (f⋅g)(x)=f(g(x))(f\cdot g)(x)=f(g(x))(f⋅g)(x)=f(g(x)) 恒等置换 单位元:ι\iotaι 逆函数:f⋅f−1=ιf \cdot f^{-1} = \iotaf⋅f−1=ι 置换群 令定义在1−n1-n1−n上的所有置...原创 2020-04-15 18:56:41 · 343 阅读 · 1 评论