数论
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 · 172 阅读 · 0 评论 -
[学之前我以为很简单的自闭数论]——Pell方程的求解 (咕咕咕)
Fuck1Fuck2原创 2020-06-05 10:50:44 · 604 阅读 · 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 · 200 阅读 · 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 · 284 阅读 · 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 longusing namespace std;inline void原创 2020-05-21 16:55:53 · 153 阅读 · 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 · 151 阅读 · 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 · 126 阅读 · 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 · 155 阅读 · 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 · 128 阅读 · 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 · 312 阅读 · 0 评论 -
Burnside定理 && Polya定理
学数论的上午注定是自闭的。原作: By Lucky_GlassBurnside定理主要是自己理解,简单的地方不多赘述。置换(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 · 384 阅读 · 1 评论