![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
赤兔码
我服了
展开
-
E. Devu and Flowers(生成函数)
题意:有n类鲜花,每类鲜花有fi个,每类鲜花都是相同的,然后询问能凑成s朵鲜花的种类数。对1e9+7取模。n<=20,fi<=1e12,s<=1e14。思路:组合数学,但是肯定不能直接搞,因为s和fi太大了,而且模数也太大了,所以卢卡斯啥的肯定不行,于是考虑生成函数。先写一个式子,这个式子之前真的从来没见过,虽然很弱智但是真的没用过。1+x+x2+x3+...+xn=1−xn+11−x1+x+x^2+x^3+...+x^n=\frac{1-x^{n+1}}{1-x}1+x+x原创 2020-11-25 17:09:46 · 314 阅读 · 3 评论 -
FFT模板+NTT模板
嫖的模板,原理未知,用于多项式乘法。将a多项式的系数赋值给a[i].x,b多项式的系数赋值给b[i].x然后solve(n,m)即可。#include<iostream>#include<cstdio>#include<cmath>using namespace std;const int MAX_N=10100000;const double Pi=acos(-1.0);inline int read(){ char c=getchar();原创 2020-10-16 11:51:34 · 217 阅读 · 0 评论 -
【美团杯2020】平行四边形(原根)
G. 【美团杯2020】平行四边形原根定义:对于任意质数p都有一个原根g,满足gi%p!= gj%p,对于任意i!=j且i,j属于[1,p-1]都满足。思路:设p=n+1,对于每个点为(i,gi%p)证明 假设存在平行四边形,即存在四个点(a,ga%p),(b,gb%p)(c,gc%p),(d,gd%p)为平行四边形,则a-b=c-d,假设a>=b,c>=d;ga%p-gb%p=gc%p-g ^d%p,即为gb(g(a-b)-1)%p=gd(g(c-d)-1)%p,因为a-b=原创 2020-05-19 11:14:41 · 212 阅读 · 0 评论 -
求斐波那契数列循环节
当斐波那契数列%mod时一定存在一个循环节,根据鸽巢原理,mod*(mod-1)一定是一个循环节,但不一定是最短的。然后求斐波那契数列%n的循环节时,先把n质因数分解,n=p1a1* p2a2*…*pkak,然后循环节就是每个pa 的循环节的最小公倍数,pa的循环节即为num[p]*pow(p,a-1),num[p]是p的循环节。即为num[p1] pow(p1,a1-1)与num[p2]...原创 2020-05-03 23:07:20 · 586 阅读 · 0 评论 -
数论公式
n∑ i*(n-i+1)=1 * n+2 * (n-1)+3*(n-2)+…+n1=n * (n+1)(n+2)=i=1原创 2020-04-30 19:52:40 · 182 阅读 · 0 评论 -
南昌ICPC拉格朗日求值法题目
Polynomial题意:给出一个n次多项式F(x),给出F(0),F(1)…F(n),m个询问给出l,r,求F[l]+F[l+1]+…+F[r-1]+F[r]。n<=1000,m<=2000,1<=l<=r<=9999990。思路:暴力肯定不行,需要求一共1e7的F[]数组,只要不是o(1)的求法就一定会爆,所有转化思路,猜测一个n次式的前缀和是n+1次式,为...原创 2020-02-19 18:57:25 · 160 阅读 · 0 评论 -
拉格朗日插值法
应用于当给出n+1个点,且这n+1个点在一个n次(或者小于n次)的多项式时,求给出在这个多项式上的一个点的x坐标,求出其对应的y坐标。用法1: 当给出n+1个点后,直接将需要求的点的x坐标带入到这个拉格朗日法公式中,f(X)=y1*(X-x2)(X-x3)…(X-xn)/((x1-x2)(x1-x3)…(x1-xn))+y2*(X-x1)(X-x3)…(X-xn)/((x2-x1)(x2-x3...原创 2020-02-17 23:33:34 · 1192 阅读 · 0 评论 -
Wannafly Winter Camp Day5 G题
Cryptographically Secure PRNG这个题打表找到的规律,卡常,因为求逆元是log级别的,所以如果用快速幂求逆元会T,所以求逆元需要用到递推公式。递推公式inv[i]代表i对于质数p的逆元inv[i]=(p-p/i)*inv[p%i]%p;#include<iostream>#include<cstdio>#include<vect...原创 2020-01-31 18:30:45 · 151 阅读 · 1 评论 -
染色图(数论分块模板)
数论分块模板(sqrt(n))适用于|n / i|向下取余因为n/i一共有sqrt(n)个值所以时间复杂度为根号n //nl代表总的左边界,nr是总的右边界 for(long long l=nl,r;l<=nr;l=r+1){ r=min(n/(n/l),nr); long long t=n/l; //l代表当前块...原创 2020-01-22 22:47:36 · 276 阅读 · 0 评论 -
求k进制n的阶乘下末尾0的个数
#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<algorithm>#include<climits>#include<cmath>#include<cctype>#include&l...转载 2019-09-20 15:20:07 · 587 阅读 · 0 评论