![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
llmxby
这个作者很懒,什么都没留下…
展开
-
luoguP5431(离线逆元)
题目链接:https://www.luogu.org/problem/P5431思路:运用前缀积离线求逆元#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath>#include <cctype&g...原创 2019-10-26 16:01:42 · 177 阅读 · 0 评论 -
hdu6217(BBP板子)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6217思路:BBP模板题... #include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath>#inclu...原创 2018-11-08 17:22:49 · 387 阅读 · 0 评论 -
poj1808(平方剩余)
题目链接:http://poj.org/problem?id=1808思路:求平方剩余是否有解,其实不用这么麻烦直接计算a^((p-1)/2) 是否为1既可,这里留一个板子#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include &l...原创 2018-11-08 18:48:17 · 267 阅读 · 0 评论 -
伯努利数模板
题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1228思路:就是一个伯努利数板子而已#pragma GCC optimize(2)#include <cstdio>#include <cstdlib>#include <cstring>#include <...原创 2018-11-20 15:55:46 · 180 阅读 · 0 评论 -
拉格朗日插值
题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1258思路:答案是k+1次,所以需要k+2个点,套模板好了,运用前后缀积降低复杂度#pragma GCC optimize(2)#include <cstdio>#include <cstdlib>#include <cstr...原创 2018-11-20 17:46:32 · 270 阅读 · 0 评论 -
codeforces 1043 F(莫比乌斯反演)
题目链接:http://codeforces.com/contest/1043/problem/F思路:F(n)表示gcd是n的倍数的方案数,f(n)表示gcd是n的方案数,然后就是一个莫比乌斯反演,这题也可以容斥。#pragma GCC optimize(2)#include <cstdio>#include <cstdlib>#include <c...原创 2018-11-16 12:38:01 · 530 阅读 · 0 评论 -
洛谷4173(fft带通配符字符串匹配)
题目链接:https://www.luogu.org/problemnew/show/P4173思路:就是FFT的匹配,具体可以去洛谷看题解(PS:第二个大佬的题解写的挺好的emmm)#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#incl...原创 2018-11-23 13:22:44 · 637 阅读 · 0 评论 -
斯特林数,贝尔数
第一类斯特林数:s (n,m)表示把n 个元素划分为m 个非空循环排列集合的方案数。递推式:s(n,m)=s(n−1,m−1)+(n−1)∗s(n−1,m)s(n,m)=s(n−1,m−1)+(n−1)∗s(n−1,m)const ll maxn=20;ll stirling[maxn][maxn];void Stirling(){ stirling[0][0]=0,...原创 2018-12-02 22:46:41 · 334 阅读 · 0 评论 -
hdu3949(异或第k小&&线性基)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3949思路:线性基原本是第i个位置最先出现1的位置是第i位,特殊处理一下让他变成只有第i位出现了1,这样不难想到可以异或出(1<<cnt)个数,然后再特判一下0就好了。#pragma GCC optimize(2)#include <cstdio>#include ...原创 2019-02-24 08:56:23 · 204 阅读 · 0 评论 -
洛谷P4525(自适应辛普森法)
题目链接:https://www.luogu.org/problemnew/show/P4525思路:模板题#pragma GCC optimize(2)#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmat...原创 2019-03-01 16:56:37 · 198 阅读 · 0 评论 -
牛客D最小相似度(fwt)
题目链接:https://ac.nowcoder.com/acm/contest/373/D思路:二分答案,由于a^b=c,c^b=a这些异或的性质,可以用fwt判断答案可行性#pragma GCC optimize(2)#include <cstdio>#include <cstdlib>#include <cstring>#include ...原创 2019-03-02 14:13:42 · 469 阅读 · 0 评论 -
luoguP4213(杜教筛)
题目链接:https://www.luogu.org/problemnew/show/P4213思路:杜教板子题,这题卡常了,如果有单纯杜教筛用了两次还跑的贼快的,希望告诉我一声emmm#include <cstdio>#include <cstdlib>#include <cassert>#include <cstring>#...原创 2019-07-11 08:29:51 · 172 阅读 · 0 评论 -
ntt模板+hdu6589
就是实现了带取模fft的功能const int G=3;//模数的原根void init(){ ll L=0; m=n+m;for(n=1;n<=m;n<<=1) L++; FOR(i,0,n-1) R[i]=(R[i>>1]>>1)|((i&1)<<(L-1));}ll gmod(ll a,ll ...原创 2019-07-23 17:01:47 · 479 阅读 · 0 评论 -
BSGS模板+牛客第三场D
BSGS是用来求解A^x ≡ B mod P (A,P互质)的最小非负正整数解的ll gmod(ll a,ll b,ll p){ ll res=1; while(b) { if(b&1) res=res*a%p; a=a*a%p;b>>=1; } return res;}ll BSGS(ll y...原创 2019-07-26 14:09:23 · 126 阅读 · 0 评论 -
类欧几里得模板
留个板子inline ll gao(ll a,ll b,ll c,ll n)//(a*i+b)/c的形式{ if (!c)return 0; if (a>=c||b>=c) return (a/c)*n*(n+1)/2+(b/c)*(n+1)+gao(a%c,b%c,c,n); else return (a*n+b)/c*n-gao(c,...原创 2019-08-06 09:39:19 · 116 阅读 · 0 评论 -
hdu6624(欧几里得)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6624思路:学会了公式化完了之后的经典问题。。留个板子emmm#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath...原创 2019-08-06 09:46:53 · 207 阅读 · 0 评论 -
2019icpc南昌网络赛D(生成函数+分治FFT)
题目链接:https://nanti.jisuanke.com/t/41351思路:生成函数这部分不多说什么,会的人这个裸的可以不用说什么,不会的自己去学一下好了,至于分治FFT,本质上不能算是一个板子吧,只是用到了分治的思想,像这题只是套了一个普通的分治,有的题套cdq什么的也没问题,但因为没写过这类题,还是先留一份代码放着(这题求fft的单位根double精读不够,要用long doubl...原创 2019-09-25 17:35:13 · 397 阅读 · 0 评论 -
洛谷P2518 [HAOI2010]计数(全排、组合数)
题目链接:https://www.luogu.org/problemnew/show/P2518思路:长度不足就补0到长度一样,然后按位枚举下去,比这个数这一位小那么后面的位置就是一个有重复元素的排列(高中数学问题...),然后减去这一位的出现次数,这题是找数位dp例题找到的,可这压根不是数位dp啊,只是借用了一点思想,套数位dp板子是不行的因为dp的数组没法记忆化,剩下的元素不同状态数就是不...原创 2018-11-13 00:13:45 · 197 阅读 · 0 评论 -
牛客国庆集训派对Day1 I Steins;Gate(FFT+原根)
题目链接:https://www.nowcoder.com/acm/contest/201/I思路:求出p的原根,那么乘法就变成了加法,FFT跑一下,下标在稍微转换一下就好了。#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include ...原创 2018-10-02 12:30:10 · 364 阅读 · 0 评论 -
hdu1452(因子和)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1452思路:将2004分解为几个质因子相乘如果p是素数s(p^n)=1+p+p^2+...+p^n= (p^(n+1)-1) /(p-1) ,对于除法用一下逆元。#include <cstdio>#include <cstdlib>#include <...原创 2018-07-27 14:08:05 · 272 阅读 · 0 评论 -
hdu1492(因子个数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1492思路:由于n可能非常大,传统o(sqrt(n))的复杂度显然不行。可以用一个因子公式(如果用ei表示X分解素因子之后的指数,那么X的因子个数就是(1 + e1) * (1 + e2) * ... * (1 + ek)。)#include <cstdio>#include &...原创 2018-07-27 14:26:35 · 262 阅读 · 0 评论 -
poj1061(线性同余方程/扩展欧几里得)
题目链接:http://poj.org/problem?id=1061思路:算得上是线性同余方程模板题,要注意的是可能会返回负数解,要取正数,我们知道:若一组 < x,y > 是ax+by=c的一组解,我们只需要让解得的x不断减b/d,直到再减就为负数时,所得的x就是我们要的解。 #include <cstdio>#include <cstdlib&g...原创 2018-07-27 15:55:37 · 570 阅读 · 1 评论 -
hdu2685(快速幂+gcd)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2685思路:。。。有个gcd的定理gcd(a^m-b^m,a^n-b^n)=a^gcd(n,m)-b^gcd(n,m);,这里b取1#include <cstdio>#include <cstdlib>#include <cstring>#includ...原创 2018-07-27 16:14:50 · 308 阅读 · 0 评论 -
hdu2973(威尔逊定理+线性塞)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2973思路:在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p ),也就是说,若p为质数,则p能被(p-1)!+1整除,所以对于这题3k+7就是p了,根据题目如果p不是质数那么得到0,否则是1,也就转换成了求p是...原创 2018-07-28 09:13:35 · 399 阅读 · 0 评论 -
hdu4549(矩阵快速幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4549思路:用费马小定理降一下幂,然后就是矩阵快速幂模板了。#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath&...原创 2018-07-28 11:41:47 · 200 阅读 · 0 评论 -
质数线性筛
其实基本的素数筛,时间复杂度也能到达O(n*loglogn),线性筛的提速并不是很明显,但这种思想还是值得学习的,这一版本是基于合数都可拆解为几个质因数相乘,只用用最小质因数筛一遍实现O(n)的复杂度。void as(int n){ REW(a,0);//0代表是素数。 a[0]=a[1]=1; t=0; FOR(i,2,n) { i...原创 2018-03-06 22:15:47 · 330 阅读 · 0 评论 -
逆元模板
https://blog.csdn.net/baidu_35643793/article/details/75268911ll inv[100008],n;int main(){ cin.tie(0); cout.tie(0); cin>>n; inv[1]=1; FOR(i,2,n) inv[i]=(mod-mod/i)*inv[m...转载 2018-07-24 16:27:47 · 186 阅读 · 0 评论 -
欧拉函数线性塞模板
void gphi(int n){ phi[1]=1,p[1]=1; FOR(i,2,n) { if(!p[i]) p[i]=i,pr[++tot]=i,phi[i]=p[i]-1; for(int j=1;j<=tot&&pr[j]*i<=n;j++) { p[i*pr...原创 2018-08-14 09:41:57 · 200 阅读 · 0 评论 -
hdu6390(欧拉线性塞+逆元表)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6390思路:若N是质数p的k次幂(即N=p^k),φ(n)=p^k-p^(k-1)=(p-1)p^(k-1)。若m,n互质,φ(mn)=(m-1)(n-1)=φ(m)φ(n)。运用欧拉函数这两个性质可以将问题化简成求最大公约数是1~min(m,n)这些数的个数。#include <cst...原创 2018-08-14 10:13:46 · 579 阅读 · 0 评论 -
hdu4135(容斥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135思路:首先可以先将题目转换成求区间1~b减去1~a-1与n互素的个数,直接求互素不好求,欧拉函数也不适用,所以可以先求出不互素的个数,然后用总个数减去就好。不互素的个数用容斥就好了。#include <cstdio>#include <cstdlib>#inc...原创 2018-08-14 16:07:07 · 261 阅读 · 0 评论 -
莫比乌斯函数线性塞
void mobious(int n){ mu[1]=1; FOR(i,2,n) { if(!vis[i]) pr[++tot]=i,mu[i]=-1; for(int j=1;j<=tot&&pr[j]*i<=n;j++) { int k=pr[j]*i;vis[k]=...原创 2018-08-15 09:26:58 · 352 阅读 · 0 评论 -
hdu1695(莫比乌斯反演or容斥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695思路:莫比乌斯模板题。#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath>#include...原创 2018-08-15 10:20:31 · 233 阅读 · 0 评论 -
UOJ#34(FFT模板)
题目链接:http://uoj.ac/problem/34思路:FFT模板。#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath>#include <cctype>#include <...原创 2018-08-13 11:20:48 · 186 阅读 · 0 评论 -
codeforces 1025 B. Weakened Common Divisor(数学)
题目链接:http://codeforces.com/contest/1025/problem/B思路:题目只是要找一个数是每一组任何一个数的因子,任何一个数可以转换成几个质因子的乘积,所以只要求每一组两个数乘积的gcd,然后如果gcd=1,显然不可行,否则找到这个gcd最小的一个因子输出就完了(这个gcd可能是1e18的数,所以随便找一组的两个数单独求gcd,大小就变为最多1e9)#i...原创 2018-08-20 09:02:23 · 258 阅读 · 0 评论 -
hdu1430(康托展开+BFS+打表)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1430思路:每个数字只出现一次,可以用康托展开压成一个数字,然后bfs找出所有情况,直接输出就好了(多组测试,每组都找的话会T,可以把初始和末尾状态映射一下,变成初始状态都是“12345678”,因为这些操作改变的只是数字的位置,对于这个位子的数字是什么,没有什么关系)#include <...原创 2018-08-23 15:41:36 · 328 阅读 · 0 评论 -
2018牛课多校第四场A(欧拉降幂)
题目链接:https://www.nowcoder.com/acm/contest/142/A思路:首先是打表找规律(。。我是直接手推了几个),然后发现对于2,指数很大而且在一直变化,所以要欧拉降幂,证明什么的太麻烦,我这里直留一个板子以后要用方便。。。#include <cstdio>#include <cstdlib>#include <cstr...原创 2018-07-30 11:21:32 · 325 阅读 · 0 评论