组合数学
文章平均质量分 67
MatrixYg
暂无
展开
-
错排问题
1.错排问题很早就别研究起来,并且形式多样。最早的错排是伯努利-欧拉信封问题,n封信装入n个信封结果没有一封装入正确的地址的方案数。类似的还有写贺卡问题,n个人互相写贺卡互相赠送自己写的不能赠送给自己,问赠送的方案数。还有拿出来n本书放回去的时候恰好都不在原来的位置的方案数。等等很多类似的问题,错排的准确的意义就是每个元素都不在自己原来的位置。如果只是有几个元素不在自己原来的位置,不能叫做错排,这...原创 2018-11-14 18:43:25 · 2045 阅读 · 0 评论 -
【多重集合的排列问题】
1.关于多重集和的排列和组合对应着母函数的普通母函数和指数型母函数。至于为啥,证明还是比较难搞得,我只会求组合得母函数得证明,求排列的暂时不会。最近遇到了几个多重集合求排列得问题,把指数型母函数拿出来复习一下。2.首先,母函数也叫做生成函数。对于一个数列:a1,a2...an.我们定义它的指数型生成函数为: ...原创 2019-09-28 17:00:08 · 1567 阅读 · 0 评论 -
【BZOJ 1008】越狱
1.题目链接。a 水题。简单的分析一下,不考虑任何限制,答案就是pow(M,N)。注意,题虽然简单,但是我觉得推理是需要依据的,我们根据相邻的点是不是一种颜色把全集划分为两个集合,这样可以做到不重不漏。那么考虑分步乘法:M*(M-1)*(M-1)...(M-1)=M*pow(M-1,N-1)。二者相减就是答案。#include<bits/stdc++.h>using names...原创 2019-08-11 22:15:04 · 121 阅读 · 0 评论 -
【2019 牛客多校第七场 ChessBoard】
1.题目链接。题目大意:给定n,m。你可以在平面上选择一个任意大的k*k的矩阵,然后矩阵中的每一个格子上放置一定数量的玻璃球,每个格子玻璃球的数量不小于m,在这个矩阵中任意的选k个行列均不同的格子,他们包含地玻璃球的数量要都是相等的。问有多少种方案。2.首先n,m都是大于等于1的,那么我们可以知道,k的最大值就是n,最小值是1,所以首先枚举k。对于每一个固定的k,又该如何解决呢?对于每一个固定...原创 2019-08-11 14:23:15 · 185 阅读 · 0 评论 -
【2019 牛客多校第八场 Just Jump】
1.题目链接。题目大意:某人要从起点1跳到终点L,这中间有1,2,3..L这个L个点。每次跳的距离大于等于d个点。然而有些点比较特殊,这些特殊的点用二元组(ti,pi)给出,意为:在第ti步,不能落在pi这个点。这样的限制有m组,问有多少种方案可以从1安全的跳到L。2. #include<bits/stdc++.h>using n...原创 2019-08-13 16:20:01 · 156 阅读 · 0 评论 -
【HDU 2197】本原串
1.题目链接。比较简单的一道组合问题,所有不是本原串的串的特点肯定都是一些长度为k并且循环了n/k次(k|n)的。所以显然,枚举因子计算不是本原串的串完事。记忆化一下完事。#include<bits/stdc++.h>using namespace std;#define ll long longconst ll mod = 2008;#pragma warning(di...原创 2019-06-11 15:15:21 · 195 阅读 · 0 评论 -
【ZOJ 3647】Gao the Grid
1.题目链接。题目大意就是给你一个n*m的矩阵,求出有多少个格点三角形。2.其实这个题目是比较简单的,但是不知道为什么,某次比赛的时候硬是被卡了三个小时(玄学卡题)。然后今天忽然间又看到了这道题,竟是原题!!强烈谴责出题人,直接搞原题上去也是牛X。其实当时的思路也是对的,就是把所有的不合法的情况减去,横纵斜线,横纵很简单,但是斜线怎么算呢?我们当时也是用的枚举矩形,但是可能细节没有处理好,题解...原创 2019-06-10 16:43:20 · 142 阅读 · 0 评论 -
【HDU 1261】字串数
1.题目链接。题目大意:给出一些字符串,问由这些字符串形成的排列有多少种。2.是一个多重排列的裸题,主要还是想说一下多重集合的排列问题。3.首先定义多重集合:常规意义下的集合是满足集合的三大性质:确定性,唯一性,无序性。其中唯一性就是说集合内的某个元素是唯一的,不会存在两个相同的元素。多重集合是普通意义集合的推广,不再满足唯一性,其他两条仍然满足。多重集合就是说一个集合内部的元素是可以重复...原创 2019-06-06 19:34:12 · 424 阅读 · 0 评论 -
【HDU 6482】组合计数问题
1.题目链接。题目大意:一个人从(0,y1)走到(x1,0),另一个人从(0,y2)走到(x2,0).求他们路线不相交的方案数。2.。。。行吧,这个题推了快1h,因为智商底。。其实很好理解,首先,我们不考虑任何限制,从(0,y)走到(x,0)的方案数其实就是一个组合数C(x+y,x).然后在不考虑任何限制的时候:ans=C(x1+y1,x1)*C(x2+y2,x2).如果二者相交,那么只需要保...原创 2019-05-01 18:29:18 · 572 阅读 · 0 评论 -
【HDU5201】一个有意思的容斥
1.题目链接。题目大意:n个桃子,m个猴子,猴子编号为1-m。其中猴王的序号是1,然后来分配这些桃子,要求1号猴王分配得到的桃子严格大于任意一只猴子,问有多少种分配方式。2.一个比较经典的容斥问题。我们首先枚举1号得到桃子的个数1到n。然后考虑至少k个其他的猴子比这个猴王多,k从1到m-1.那么最终的结果就是至少0个-至少一个+至少两个.....。下面来看至少k个如何让计算:因为猴王此时为x个...原创 2019-04-15 17:14:28 · 240 阅读 · 0 评论 -
【Codeforces 785D】范德蒙恒等式
1.题目链接。题目大意:一个由括号构成的序列,让你找到这个序列中有多少个好的子序列。一个好的子序列的定义是这样的: 2.分析:这个题是一个组合数学问题。对于每一个'(',我们统计它的左边有多少个和它相同的,右边有多少个和它相对的。也就是在这个左括号的左边选出i个左括号,右边选出i+1个右括号。(为什么是i+1,...原创 2019-04-02 19:49:52 · 458 阅读 · 0 评论 -
【HDU 4462】暴力二进制枚举
1.题目链接。题目大意:John有一块农田,现在他需要在农田k个空闲的位置放置驱逐bird的scarecrows。已知每个scarecrows各异保护的范围是距离它哈密顿距离不超过k的地方,现在给你这k个点的坐标,求出最少需要放置多少个scarecrows才能保护好整片农田。2.由于k很小,不超过10.所以我们可以直接枚举所有的组合。网上很多题解都是说枚举,但是很少有说明为什么是可以这样枚举的...原创 2019-03-19 14:27:34 · 234 阅读 · 0 评论 -
【HDU2152】有下界的母函数
1.题目链接。中文题就不再解释了,还是套用我们之前的模版,给一个下界就行了,很简单。这里物品的价值,可以直接把V数组去掉,也可以把它赋值为1,消除影响。代码如下:#include<bits/stdc++.h>#include <iostream>#include <cstring>using namespace std;int N, M, n1[2...原创 2019-02-12 23:03:01 · 185 阅读 · 0 评论 -
【HDU1398】物品无限的母函数
1.题目链接。意思很明确了,就是给你一些硬币和一个值,求用这些硬币组成这个值的方案数量。典型的母函数,把我们前边的模版参数改一下就A了。代码如下:#include<bits/stdc++.h>#include<iostream>#include<algorithm>using namespace std;const int MAX = 1e4 + ...原创 2019-02-11 23:27:32 · 132 阅读 · 0 评论 -
【HDU1171】母函数
1.题目链接。题意就是给你一些物品,这些物品有价值和数量,将他们分成两堆,尽可能的均分(二者之差尽可能的小)。前边我们分析过了,这可以使用背包解决,但是我们使用母函数也是可以解决的,本质上来说二者的区别不是很大,都是再一堆物品中选出一些合适的东西来,都是组合的思想。我们知道,再母函数的代码里面,我们有一层的循环是这样子写的:for (i = 1; i<n; ++i) { for (...原创 2019-02-10 22:34:36 · 305 阅读 · 0 评论 -
【HDU1085】母函数入门
1.题目链接。题目大意:给你一定数量的1元,2元,5元的钱,问你最下不能够凑出来的数目是哪一个?2.额,显然是一个组合的问题了。这种选数据的题目,是母函数的最好的使用场所了。至于母函数是什么?我就不再一一推理说明了。其实很多人都只是会用,并不知道为什么。可能母函数的证明方法有很多种,但是我知道的一种证明使用了离散数学中的析取和合取这些基本的概念。所以要是证明又需要从盘古开天辟地说起,我就偷个懒...原创 2019-02-09 22:27:20 · 192 阅读 · 0 评论 -
组合数学-卡特兰数的应用
1.定义这样的递推:H[n]=(4n-2)/(n+1)*H[n-1],则形成的H数列叫做卡特兰数。卡特兰数有很多种递推方式,因为不同的问题从不同的角度出发产生递推结果可能是殊途同归。下面再给出一种十分常用的卡特兰数的递推:H[n]=H[0]*H[n-1]+H[1]*H[n-2]...H[n-1]*H[0].1.卡特兰数是组合数学上的一个十分重要的数列,有十分明显的几何意义。他的引出是从一个几何...原创 2018-11-06 11:39:41 · 836 阅读 · 0 评论 -
【上海网络赛 Counting SequenceII】
1.一句话题意:构造一个长度为n的数组,a[1,n],范围为[1,m].其中偶数出现的次数必须是偶数次。2.解析:母函数计数问题。还是很常规的用法,母函数写一下。这里我们是首先考虑无限长的时候,然后再单独的看n的系数即可。假设在[1,m]中有t个偶数,那么就有m-t个奇数。 然后泰...原创 2019-09-28 22:41:24 · 166 阅读 · 0 评论