
数学
qianyri
这个作者很懒,什么都没留下…
展开
-
快速幂/数论技巧专题
快速幂取模 long long pow(long long a,int k,long long mod)//快速幂取模 { long long b=1; while(k) { if(k&1) b=b*a%mod; a=a*a%mod; k>>=1; } return b; } 矩阵快速...原创 2018-09-07 19:54:38 · 232 阅读 · 0 评论 -
FFT/NTT/FWT专题
FFT可快速计算卷积,卷积为两个生成函数的乘积,生成函数为 FFT 卷积 生成函数 的关系 多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/例题与常用套路【入门】 HDU1402 A * B Problem Plus 大数乘法 生成函数:,设两个大数位:、,L1/L2为两个大数的长度, 利用FFT求两个函数的卷积,将所得改为十进制整数即为所求答案 #include&l...原创 2018-09-08 14:24:09 · 629 阅读 · 0 评论 -
2018徐州ICPC网络赛D Easy Math 杜教筛
2018徐州ICPC网络赛D Easy Math 递推题解 #include<stdio.h> #include<string.h> #include<map> #include<algorithm> using namespace std; const int MAX=1e7+5; bool vis[MAX]; int prim[MAX],m...原创 2018-09-12 19:31:58 · 441 阅读 · 0 评论 -
组合计数专题
原博客 组合数学之一 —— 计数问题基础 组合数学之二 —— 容斥原理及应用 组合数学之三 —— 生成函数 组合数学之四 —— 鸽巢原理 组合数学之五 —— 莫比乌斯反演 组合数学之六 —— 差分序列&Stirling数 ...原创 2018-09-07 20:39:25 · 2126 阅读 · 0 评论 -
2018徐州ICPC网络赛A Hard to prepare 组合数- 环的不相邻染色
2018徐州ICPC网络赛A Hard to prepare 组合数学 图的不相邻染色问题 个点种不同的方案,第1个点有种方案,2~n-1个点有种方案,第n个点有种方案, 但该推导还少了第1个点和第n-1个点相同时第n个点有种方案的情况, 因此,把第1个和第n-1个看作相同,其余n-2个点进行染色,推导方法与上述相同,可产生一个递归方程 前面算的时候n已经算过次了 ,后面递归的是n剩下的...原创 2018-09-10 20:55:37 · 321 阅读 · 0 评论 -
HDU5446 Unknown Treasur Lucas+中国剩余定理
HDU5446 Unknown Treasur Lucas C(n,m):n,m<1e18,且mod非质数 -----Lucas+中国剩余定理 若mod为质数------------------------------Lucas 因为mod值不定,所以无法预处理阶乘和逆元 #include<bits/stdc++.h> using namespace std; cons...原创 2018-09-24 15:14:39 · 247 阅读 · 0 评论 -
codeforce338 D. Multipliers 费马小定理降幂
codeforces338 D. Multipliers 给定组成一个数的质因子序列,求其所有因子的乘积 一个质因子的贡献为 化简得 由于可能为一个大数,根据费马小定理 进行降所以对 所以对模但是可能很大,需要在计算过程中不断取模, 因为除法不满足取模性质,所以不可以直接外提,且mod-1不是质数,2不存在逆元,考虑将模数扩大2倍消除其影响m...原创 2018-09-26 17:09:55 · 290 阅读 · 0 评论 -
codeforce895 D. String Mark 有重复元素的排列数
codeforce895 D. String Mark 给定两个相同长度的字符串S1和S2,求由S1重新排列产生S3,且字典序(S1<S3<=S2)的种类数 不同的题解 我的题解:O(NlgN) 分别统计字典序小于S2和小于S1的排列数,Ans=Ans2-Ans1-1(不能与S1相同) 有重复元素的排列数:sum表示元素总数,cnt[]表示元素个数 统计S1中每个字符串...原创 2018-10-17 17:52:19 · 303 阅读 · 0 评论 -
HDU6397 Character Encoding 插板法+容斥
HDU6397 Character Encoding 组合计数—插板法+容斥原理 给定n,m,K求 G(p) = F(p)−G(p+1),F(p)=(m,p)*(K-n*p+m-1,m-1),p表示>n的组数,根据容斥原理,G(0) 即为最终答案。 #include<bits/stdc++.h> using na...原创 2018-08-16 13:24:17 · 293 阅读 · 0 评论 -
组合计数 插板法
转载 插板法就是在n个元素间的(n-1)个空中插入若干个(b)个板,可以把n个元素分成(b+1)组的方法。 应用插板法必须满足三个条件: (1)这n个元素必须互不相异 (2)所分成的每一组至少分得一个元素 (3)分成的组别彼此相异 把10个相同的小球放入3个不同的箱子,每个箱子至少一个,问有几种情况? 问题的题干满足 条件(1)(2),适用插板法,c92=36 下面通过几道题目介绍...原创 2018-08-16 10:55:16 · 1434 阅读 · 0 评论 -
HDU6395 Sequence 矩阵快速幂+整除分块
整除分块 for(int l=1,r;l<=n;l=r+1) { r=n/(n/l); ans+=(r-l+1)*(n/l); } r=n/(n/l)是块的最后一个数 l=r+1是块的第一个数 r-l+1是块的长度 n/l是块的值 HDU6395 Sequence 的约数数量在它的根号级别,相同的i都是连续的一段,对这一段用矩阵乘法转移,段数也是的根号级别的。 时间...原创 2018-08-13 20:15:32 · 378 阅读 · 0 评论 -
HDU6304 Chiaki Sequence Revisited 等差数列 乘法逆元
HDU6304 可参考的题解 //702MS 1372K #include <bits/stdc++.h> using namespace std; const int MAX=1e5+1; const long long MOD=1e9+7; long long two[60]; void read(long long &x) { x=0;char s=getc...原创 2018-07-27 16:45:40 · 207 阅读 · 0 评论 -
差分数列
https://blog.youkuaiyun.com/wu_tongtong/article/details/79115921原创 2018-08-10 14:17:22 · 1514 阅读 · 0 评论 -
POJ3233 Matrix Power Series 矩阵快速幂
POJ3233 Matrix Power Series 矩阵快速幂 #include<stdio.h> #include<string.h> using namespace std; int n,m; struct Mat { int m[61][61]; Mat(){memset(m,0,sizeof(m));} void print() ...原创 2018-08-03 13:21:10 · 205 阅读 · 0 评论 -
HDU6333 Problem B. Harvest of Apples 莫队算法+乘法逆元
HDU6333 Problem B. Harvest of Apples 莫队算法 求(0,n)~(m,n)组合数之和 #include <bits/stdc++.h> using namespace std; const int MAX=1e5+5; const int BLOCK=(int)sqrt(1e5); const long long MOD=1e9+7; long...原创 2018-08-02 11:43:02 · 609 阅读 · 0 评论 -
容斥原理/莫比乌斯反演/欧拉函数/线性筛专题
欧拉函数 线性筛 杜教筛 莫比乌斯反演 容斥原理 HDU2588 GCD 欧拉函数 给定N,M,求1<=X<=N 且gcd(X,N)>=M条件下X的个数 #include<bits/stdc++.h> using namespace std; int euler(int n) { int ans=n; for(int i=2;i*i&...原创 2018-08-08 10:25:16 · 1118 阅读 · 0 评论 -
HDU3037 Saving Beans Lucas 定理+逆元
HDU3037 Saving Beans 题目相当于求n个数的和不超过m的方案数。 如果和恰好等于m,那么就等价于方程x1+x2+...+xn = m的解的个数,利用插板法可以得到方案数为: (m+1)x(m+2)...(m+n-1) = C(m+n-1,n-1) = C(m+n-1,m) 现在就需要求不大于m的,相当于对i = 0,1...,m对C(n+i-1,i)求和,根据公式C(n...原创 2018-08-15 19:43:47 · 231 阅读 · 0 评论 -
组合数取模专题/质因分解
T^TOJ 组合数取模 乘法逆元知识 组合计数-插板法 类型0:n,m<=1000 直接暴力预处理杨辉三角,预处理复杂度O(n*n) 公式:C(n,m)=C(n,n-m)=C(n-1,m-1)+C(n-1,m) 类型1:n,m<=1e6 且模数p是质数。 O(n)预处理 阶乘fac[i]和阶乘的逆ifac即可。然后 C(n,m)=fac[n]*ifac[m]*ifac[...原创 2018-08-15 19:55:51 · 699 阅读 · 0 评论 -
乘法逆元
大数取模 /乘法逆元 int64 x当 x*x可能溢出int64时需要内部取模 (x%mod)*(x%mod)%mod 当出现求解(b/a)%mod=?问题时,可以转化到求解b*x%mod=? 其中x称为a关于mod的乘法逆元 1.笔算求a关于mod的乘法逆元x: 根据定义可知, a*x%mod=1 -> a*x=1+y*mod -> x=(mod+1)/b ...原创 2018-08-15 20:09:44 · 402 阅读 · 0 评论 -
Polya置换群计数
波利亚计数(群论) POJ2154 Color 求用m种颜色给n个物品染色的方案数--旋转 根据Polya定理有 此题中m=n #include<bits/stdc++.h> using namespace std; int t,n,p; int euler(int n) { int ans=n; for(int i=2;i*i<=n;i++) ...原创 2018-10-24 21:02:41 · 378 阅读 · 0 评论