组合数学与计数
Dream-chasing ant
鄙人水平不高,建立博客初心只是想留一份回忆给自己。
展开
-
Hall’s marriage theorem
文章目录引例A - Roundgod and Milk Tea HDU - 6667 引例 参考 参考 参考 参考 本来以为是贪心,但后面挖了一下,就搜到了这个Hall’s marriage theorem,简单学习了一下,证明我没有看懂,但例子得学习一下。这应该算组合数组吧。 例子:在一个大厅里有n个男生和n个女生,每个男生都有一些心仪的女生,每个女生也有一些心仪的男生。现在问这2n个人能否完全匹配。 解:抓出任意数量的男生(女生),查看他们心仪对象的数量是否大于等于抓出任意男生(女生)的数量。如果每一原创 2020-07-10 10:27:00 · 456 阅读 · 0 评论 -
P1976 鸡蛋饼
传送门 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=3e3+20; const int mod=100000007; int n; ll a[maxn]={1}; int main() { scanf("%d",&n); for(int i=1;i<...原创 2020-03-27 21:59:42 · 199 阅读 · 0 评论 -
P1722 矩阵 II
传送门 卡特兰数 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e2+10; const int mod=100; int n; int main() { scanf("%d",&n); int a[maxn]={1}; for(int i=1;i&...原创 2020-03-27 21:49:46 · 179 阅读 · 0 评论 -
P2532 [AHOI2012]树屋阶梯
传送门 卡特兰数 #include<iostream> #include<stdio.h> using namespace std; int f[550][500];//f[i][j]±íʾµÚi¸öÊýµÄµÚjλ¡£ int len=1; void add(int u) { for(int i=1;i<=len;i++) f[u]...原创 2020-03-27 21:37:15 · 196 阅读 · 0 评论 -
P1641 [SCOI2010]生成字符串
卡特兰数:C(2n,m)-C(2n,m-1) 传送门 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int p=20100403; ll q,n,m; ll ans,fz=1,fm=1; ll gcd(ll a,ll b,ll &gd,ll &x,ll &y)...原创 2020-03-27 21:15:57 · 71 阅读 · 0 评论 -
P1044 栈
传送门 卡特兰数经典题原创 2020-03-27 20:44:36 · 73 阅读 · 0 评论 -
容斥原理
这几天做了一些题,可能不是有关容斥原理的,但我突然想到了它,就记录一下它吧,万一哪天用上了呢。 目的:为了使重叠部分不被重复计算 这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 例如:一次期末考试,某班有15人数学得满分,有12人语文得满分,并且有4人语、...原创 2020-03-15 21:54:43 · 177 阅读 · 0 评论 -
卡特兰数
引例:游乐园门票50元一张,每人限购一张,现在有10个小朋友排队购票,其中5个小朋友带了一张50元钞票,另5个小朋友带了100元的钞票,售票员没有零钱,问有多少种排队方法,使售票员可以找开零钱。 分析:第一个人一定是带50元钱的小朋友,第二个人可以是带50元的小朋友也可以是带100元的小朋友… 我们设定状态(a,b).小朋友一共有n个,a个小朋友带了50元钱,b个小朋友带了100元钱。n=a+b...原创 2020-03-27 19:59:15 · 218 阅读 · 0 评论