组合数学
文章平均质量分 66
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[DP 组合数学] BZOJ 4498 魔法的碰撞
传送门:http://blog.csdn.net/visit_world/article/details/51090964dp其中一维解释一下,表示可以放且必须放的一个位置#include#include#include#include#define P 1000000007using namespace std;typedef long long ll;inlin原创 2016-04-12 19:57:31 · 768 阅读 · 0 评论 -
[组合数] 51Nod 1161 Partial Sums & Codeforces 223C #138 (Div. 1) Partial Sums
自己手推就能发现是个斜着的杨辉三角#include#include#include using namespace std;typedef long long ll;const int P=1000000007;const int N=5005;int n,K;ll a[N];ll inv[N];inline void Pre(){ inv[1]=1;原创 2016-11-17 07:53:23 · 531 阅读 · 0 评论 -
[置换快速幂 中国剩余定理] POJ 1282 庆典的日期
论文:潘震皓--置换群快速幂运算 研究与探讨置换的快速幂题解n2logn#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef long long ll;inline char nc(){ static原创 2016-12-08 06:54:57 · 605 阅读 · 0 评论 -
[置换开方] POJ 1721 CARDS
论文:潘震皓--置换群快速幂运算 研究与探讨置换的开根O(n2)#include#include#includeusing namespace std;const int N=1005;int n,s;struct Te{ int a[N]; Te(){ } Te(int t){ if (t==1) fo原创 2016-12-08 17:01:26 · 569 阅读 · 0 评论 -
[置换 组合数学 基环内向树] AGC 008 E - Next or Nextnext
传送门这个 我也不知道怎么说啊 把 ii 向 a[i]a[i] 连边 因为点数等于边数 每个点入度至多为2 那么基环内向树和环组成的森林 由置换那一套理论可知 置换的开方 一些长度相同的环 可以合并 然后 枚举一下每种长度几对环合并 组合计数一下 剩下的不合并的环 如果是大于1的奇环 也是可以选择开方或不开方的 至于每棵基环内向树 可以看出不可以和其他树或环合并 且支链一定是一条直链 然原创 2017-02-19 14:32:15 · 1494 阅读 · 1 评论 -
[第一类斯特林数] HDU 3625 Examining the Rooms
nn个房间 每个房间的钥匙随机放在某个房间内 概率相同 有kk次炸门的机会 不能炸1号房间 求能进入所有房间的概率 钥匙与门的对应关系呈现出环。打开一个门之后,环内的所有房间都可以进入。 问题就转化成了nn个房间形成1~kk个环的概率。 题目还有一个特殊要求即,1号点不能单独成环。 所以答案就是 ∑ki=1s(n,i)−s(n−1,i−1)n!{ \sum_{i=1}^k s(n,i)-s原创 2017-02-21 18:37:12 · 350 阅读 · 0 评论 -
[生成函数 FFT] BZOJ 3771 Triple
一个生成函数,用FFT做乘法重复的部分我们考虑用容斥原理来解决。为了方便描述我们不妨设三个多项式。第一个是仅取一个而构成的多项式。->x第二个是仅取相同的两个而构成的多项式。->y第三个是仅取相同的三个而构成的多项式。->z对于本题有三种情况。第一种是取一个,显然直接将x加到答案就好。第二种是取两个,则需要一小步容斥,即(x*x-y)/2第三种是取三个,则需原创 2016-04-07 18:50:03 · 644 阅读 · 0 评论 -
[生成函数 FFT 分块] BZOJ 3509 [CodeChef] COUNTARI
学着大神优化了FFT常数:http://blog.csdn.net/geotcbrl/article/details/50636401可以看出来这是个生成函数暴力的话是N次FFT 然后考虑分块 B次FFT + 块内统计#include#include#include#include#include#define cl(x) memset(x,0,sizeo原创 2016-04-21 13:55:29 · 791 阅读 · 0 评论 -
[Polya] BZOJ 1488 图的同构
传送门:http://blog.csdn.net/wzq_qwq/article/details/48035455#include#include#include#include#define P 997using namespace std;inline int Gcd(int a,int b){ if (a<b) return Gcd(b,a); ret原创 2016-02-05 14:11:53 · 924 阅读 · 0 评论 -
[Polya] POJ 2409 Let it Bead
水题...#include#includeusing namespace std;typedef long long ll;ll Gcd(ll a,ll b){ return b?Gcd(b,a%b):a;}inline ll Pow(ll a,ll b){ ll ret=1; for (;b;b>>=1,a*=a) if (b&1) ret*=a;原创 2016-07-03 12:52:41 · 329 阅读 · 0 评论 -
[第二类斯特林数 组合计数] 省选模拟赛 2 B. 两弹一星 missile
题目大意 一张无向图的权值定义为 xkx^k,其中 xx 是图中结构为树的连通块个数。给定 nn, kk, 求出所有 nn 个点带标号的的简单无向图的权值和,对 998244353998244353 取模。令 xix_i 表示树联通块 i 是否存在 , 图的权值为 (∑xi)m(\sum x_i)^m。对于某 kk 个联通块,如果同时出现,那么贡献为 S(m,k)∗k!S(m, k) * k!原创 2017-03-18 21:01:59 · 1075 阅读 · 0 评论 -
[组合数学] BZOJ 2227 [Zjoi2011]看电影(movie)
答案是 (K+1)n−1∗(K+1−n)Kn(K+1)^{n-1}*(K+1-n) \over { K^n} 证明很妙啊 先加上一个位置并看成一个环,那么方案数就是(K+1)n(K+1)^n,并且可以保证一定合法,因为是环,又因为是环可以转有K+1K+1个方案重复了,所以实际上是(K+1)n−1(K+1)^{n-1}。 拆掉一个空座位回到原问题,因为是空位,所以一定没有人跨过去原创 2017-03-13 13:19:22 · 579 阅读 · 0 评论 -
[Bell数] HDU 4767 Bell & BZOJ 3501 PA2008 Cliquers Strike Back
ACdreamer大牛的详细介绍Bell数 大概是这样的有递推公式 可以分治FFT求 生成函数很优美 可以用多项式科技求 是第二类斯特林数的和 可以用Bell三角形预处理 神奇的同余性质 可以计算对小质数取模的值 也可以CRT合并 这里的p是不大于100的素数 模素数p的周期 这里就是求bell模一个数的值 可以发现 95041567=31∗37∗41∗43∗4795041567 = 31*原创 2017-02-24 01:36:00 · 624 阅读 · 0 评论 -
[真正的单色三角形] BZOJ 3498 PA2009 Cakes
Description给定一个无自环重边的无向图,求这个图的三元环的个数以及补图的三元环个数。 n≤105,m≤105n ≤ 10^5,m ≤ 10^5PS. 可以在这里交Analysis这个东西 首先我们可以用BZOJ 2916 [Poi1997]Monochromatic Triangles的方法算出原图三角形和补图三角形的个数之和 然后我们再算出原图三角形的个数就好了 以下的代码都是求原图原创 2017-03-04 23:39:51 · 1118 阅读 · 0 评论 -
[Lucas定理 数位DP 容斥原理] 2015 计蒜之道 复赛 360的产品试用体验
直接上官网题解吧:http://blog.jisuanke.com/?p=146题意即求其中且因为 47 是质数,如果把ai, li, ri, xi 写作 47 进制数因为 47 是质数,根据Lucas定理 ,题目转换为求的值,同时满足:– 字典序不小于 不大于 – x1 + x2 + x3 ≤ n.原创 2016-11-14 12:45:23 · 1052 阅读 · 0 评论 -
[数位DP Lucas定理] 2017 计蒜之道 复赛 E. 商汤智能机器人
阿爷教导我 ∑∞i=0(Ai)∗(A+B−iA),A=x+y2,B=x−y2\sum _{i=0}^\infty \dbinom{A}{i}*\dbinom{A+B-i}{A},A={x+y\over 2},B={x-y\over2}然后就是数位dp+lucas定理的套路了 注意有减法要处理退位 一开始写的时候考虑的有点问题 调了很久很久 这个可以从低到高 也可以从高到低 因为意识模糊就原创 2017-06-11 08:13:52 · 1650 阅读 · 3 评论 -
[卡特兰数] 51Nod 1120 机器人走方格 V3
卡特兰数×2卡特兰数 C(2n,n)-C(2n,n-1)#include#include#includeusing namespace std;const int P=10007;int fac[P+5],inv[P+5];inline void Pre(){ fac[0]=1; for (int i=1;i<P;i++) fac[i]=fac[i-1]*原创 2016-11-17 07:46:31 · 684 阅读 · 0 评论 -
[数学 二项式定理 快速幂] BZOJ 3157 && BZOJ 3516 && BZOJ 4126 国王奇遇记
膜拜神犇n+e:http://trinkle.is-programmer.com/2015/6/30/the-adventures-of-the-king.100058.html本题按时间复杂度的不同共有三种解法。只会O(m2)的方法#include#include#include#define P 1000000007using namespace s原创 2016-04-20 16:13:03 · 828 阅读 · 0 评论 -
[组合数 DP] HDU 4532 湫秋系列故事——安排座位
一种典型的组合数DP f[i][j]表示前i种数值排列有j个不合法间隙的方案数然后枚举第i个分成几块k 有l块塞入j个不合法空隙中进行转移答案即为f[n][0]不过还要乘以排列数#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;type原创 2016-09-27 18:04:28 · 909 阅读 · 0 评论 -
[LCT 组合 期望] BZOJ 3091 城市旅行
%%%PoPoQQQ:http://blog.csdn.net/popoqqq/article/details/40823659第四个操作怎么办?!做过2752就好了#include#include#include#define V G[p].vusing namespace std;typedef long long ll;inline char nc(){ s原创 2016-04-27 19:40:52 · 433 阅读 · 0 评论 -
[期望 生成函数 卷积 导数] BZOJ 4001 [TJOI2015]概率论
题解:http://blog.miskcoo.com/2015/04/bzoj-4001公式恐惧症main(n){scanf("%d",&n);printf("%.9lf\n",(double)n*(n+1)/(2*n-1)/2);}原创 2016-05-02 14:48:51 · 1322 阅读 · 0 评论 -
[组合 容斥 DP] BZOJ 2863 愤怒的元首
题解:http://blog.csdn.net/werkeytom_ftd/article/details/51182412我们设f[i]表示i个带编号结点组成的合法DAG的个数。 如果删去DAG中所有入度为0的结点,接下来的DAG也是一个合法DAG。 但我们不知道有多少入度为0的结点,所以我们想要得到至少有0个入度为0的结点的DAG个数(对就是这么神奇)。 那就容斥呗。原创 2016-04-20 16:18:17 · 654 阅读 · 0 评论 -
[组合数学 卡特兰数] BZOJ 1856 [Scoi2010]字符串
终于弄懂了Catalan数的另类通项的实际意义了:http://www.cnblogs.com/jianglangcaijin/p/3443689.html#include#include#include#include#define P 20100403using namespace std;typedef long long ll;const int N=20000原创 2016-04-20 19:32:42 · 464 阅读 · 0 评论 -
[组合 错排] BZOJ 4517 [Sdoi2016]排列计数
n个里选m个 然后n-m个里错排***错排相关公式Dn=(n-1)*(Dn-1+Dn-2) D1=0,D2=1Dn=n*Dn-1+(-1)^(n-2)=n*Dn-1+(-1)^nDn=n!(1-1/1!+1/2!-1/3!+……±1/n!)#include#include#include#define P 1000000007using namespace原创 2016-04-19 18:36:59 · 443 阅读 · 0 评论 -
[组合计数] BZOJ 3505 [Cqoi2014]数三角形
减去共线的就好了线上的整点用gcd#include#includeusing namespace std;typedef long long ll;ll Gcd(ll a,ll b){ if (a<b) return Gcd(b,a); return b?Gcd(b,a%b):a;}ll n,m;ll ans;int main(){ freopen("原创 2016-07-13 16:22:07 · 465 阅读 · 0 评论 -
[组合数学] BZOJ 2467 [中山市选2010]生成树
Po姐传送门:http://blog.csdn.net/PoPoQQQ/article/details/41348131main(n,a,T,i){scanf("%d",&T);while(T--){scanf("%d",&n);a=4*n;while(--n)a=a*5%2007;printf("%d\n",a);}}原创 2016-06-06 06:52:36 · 532 阅读 · 0 评论 -
[组合数学] BZOJ 4403 序列统计
就是个m元线性方程的非负整数解个数C(n+m-1,m-1) 嘛#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(b原创 2016-05-20 16:24:16 · 529 阅读 · 0 评论 -
[组合数学 思路题] BZOJ 4402 Claris的剑
好神的题:http://blog.csdn.net/lych_cys/article/details/50603389实际上,任意一种可行的方案的序列都可以转化为本质相同的下述序列: 先是若干个(1,2),然后是若干个(3,2),然后是若干个(3,4)……以此类推,当然如果长度为奇数就在最后面加上一个数,举个例子: {1,2,3,2,3,原创 2016-04-13 17:28:10 · 466 阅读 · 0 评论 -
[数论] 组合数取模 中国剩余定理 Lucas定理
[数论] 组合数取模 中国剩余定理 Lucas定理原创 2016-01-10 16:34:25 · 1680 阅读 · 0 评论 -
[矩阵 二项式定理 单位根 构造 数学神题] BZOJ 3328 PYXFIB
题解:http://blog.csdn.net/regina8023/article/details/45007551#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2原创 2016-06-29 16:51:05 · 1450 阅读 · 0 评论 -
[第一类斯特林数 组合] HDU 4372 Count the Buildings
一个圆排列对应把最大的放在最前#include#include#includeusing namespace std;typedef long long ll;const ll P=(ll)1e9+7;const int N=2000;ll c[N+5][N+5],s[N+5][N+5];ll x,y,n,ans;inline void Pre(){ c[0原创 2016-08-22 11:41:04 · 341 阅读 · 0 评论 -
[第二类斯特林数 组合 分治FFT||多项式求逆] BZOJ 4555 [Tjoi2016&Heoi2016]求和
自己好弱 多项式求逆不会啊分治FFT也是第一次打#include#include#includeusing namespace std;typedef long long ll;inline ll Pow(ll a,ll b,ll p){ ll ret=1; for (;b;(a*=a)%=p,b>>=1) if (b&1)原创 2016-08-22 21:28:49 · 1547 阅读 · 0 评论 -
[第二类斯特林数 树形DP] HDU 4625 JZPTREE && BZOJ 2159 Crash 的文明世界
%%%jiry_2也可以这样:http://blog.csdn.net/dwylkz/article/details/9749827#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;inline char nc(){ s原创 2016-08-22 21:25:55 · 1090 阅读 · 0 评论 -
[组合] BZOJ 2916 [Poi1997]Monochromatic Triangles
转化为求 总三角形-同色三角形不同色三角形 一定有且只有2个点的邻边颜色不同#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2原创 2016-09-02 21:37:36 · 815 阅读 · 0 评论 -
[计数] 美团 CodeM 复赛 排列
#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef pair<int,int> abcd;typedef long long ll;#define read(x) scanf("%d",&(x))const int P=1e9+7;inline ll Pow(ll a,int b){原创 2017-07-11 22:35:35 · 669 阅读 · 0 评论