
------数论-------
五彩蒟蒻DDD
大大大大大蒟蒻
展开
-
NOIP2016组合数问题 杨辉三角形+组合数
【还好不是在考场上遇到这道题】 我会说在这之前我都不记得有这么一个公式?总之蒟蒻的数论真的太差了……C(n,m)=C(n-1,m)+C(n-1,m-1)知道这个公式后一切都变的简单了。先用O(n*m)预处理出c[i][j](在代码里写的是f[i][j]) 的值,然后用二维前缀和预处理出答案,在查询时就可以O(1)回答啦!#include<cstdio>#include<cstring> usi原创 2017-10-18 21:44:53 · 810 阅读 · 0 评论 -
欧拉函数板子
欧拉函数:小于n的正整数中与n互质的数的数目(φ(1)=1) 在线求欧拉函数: //求欧拉函数板子 //根号n求欧拉函数 注意是 i*i<=x int getphi(int x){ int tmp=x; for(int i=2;i*i<=x;i++){ if(x%i==0){ while(x%i==0) x/=i;原创 2017-11-08 15:03:48 · 448 阅读 · 0 评论 -
卡特兰数复习笔记
就我目前的理解Catalan的作用就是:通过打表得出该题答案是Catalan,然后求Catalan数【简单粗暴】公式h(n)=comb(2n,n)/(n+1)=comb(2n,n)-comb(2n,n-1) 递归式 h(n)=(4n-2)/(n+1)*h(n-1) , h(0)=1,h(1)=1实例h(n)=n组合法括号序列的方案数h(n)=在n*n格点中不越过对角线的单调路径个数h(n原创 2017-10-22 21:39:07 · 296 阅读 · 0 评论 -
10.20校内ACM G题站队
这道题算是bzoj1485的简化版,只要我们看出来这是一个catalan数就可以了。 ywq大佬在ACM的时候居然能看出来蒟蒻我真是佩服的五体投地%%% 先上/* 蒟蒻丑陋的O(n^3)打表代码 */打表代码我们通过它得出规律:#include<cstdio>#include<cstring>using namespace std;int dp[100][100];int main()原创 2017-10-22 21:28:07 · 389 阅读 · 0 评论 -
扩展欧几里德板子 poj2142
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define ll long longconst int inf=1e9;void exgcd(int a,int b,int &x,int &y,int &d){ if(!b){ x=1,y=0,d=a;原创 2017-11-07 20:10:01 · 358 阅读 · 0 评论 -
多种方法求逆元的板子
三种方法放在洛谷上都过了(除了费马小定理求快速幂最后一个点TLE了),所以正确性是没问题的 才知道!!x1这个变量名!!是不能在LINUX下用的!!!#include<cstdio>#include<cstring>using namespace std;#define ll long longconst int N=3e6+5;//o(n)求逆元,要求模数必须为质数,并且所求的数小于模原创 2017-11-07 22:17:00 · 513 阅读 · 0 评论 -
线性筛板子
求素数#include<cstdio>#include<cstring>using namespace std;const int N=10000000;bool noprime[N+5];int prime[N+5],size;void euler(int n){ for(int i=2;i<=n;i++){ if(!noprime[i]) prime[++s原创 2017-11-07 20:40:12 · 498 阅读 · 0 评论 -
组合数学之隔板法
大意:在n棵树上摘0~m个果子,有多少种摘法?解法:法一摘的数目刚好为m时,相当于在n个盒子里装m个球。原创 2017-10-19 20:56:56 · 1558 阅读 · 0 评论 -
bzoj1485 catalan数+特殊的求组合数方法
题解首先%%%谢大佬 感谢她给我讲了这道题O(n)求组合数的方法 以及在这里贴上谢大佬这道题的题解,因为访问量太低谢大佬都伤心了->谢大佬的良心题解你值得拥有 1、我们可以得出这道题的答案是catalan数 详解见此 2、我们会发现这道题的p是不定的并且它可以不为素数。这时我们就可以引出这种神奇的求组合数方法了—— 例:求comb(m,n)%mod 先用线性筛筛出质数和范围内每个数的最小质原创 2017-10-22 21:54:34 · 865 阅读 · 0 评论 -
Lucas定理板子 洛谷P3807
数论Lucas定理是用来求 C(m,n)%p的值,【p是素数】【辣鸡杭电针对我,在洛谷上能A在杭电上就要T】 HDU3037还涉及到隔板法,详情见此 洛谷直接给了公式。 1、O(n)预处理逆元#include<cstdio>#include<cstring>using namespace std;#define ll long longconst int N=1e5+5;/*ll f原创 2017-11-08 16:21:19 · 401 阅读 · 0 评论