组合数学
文章平均质量分 87
Frozen_Guardian
已退役菜鸡Acmer
展开
-
卡特兰数
证明及应用:https://blog.csdn.net/qq_30534935/article/details/89077079主要应用:进出栈 电影购票 圆内连弦 凸多边形剖分转载 2020-05-10 23:24:30 · 209 阅读 · 0 评论 -
2021牛客多校5 - Double Strings(dp+组合数学)
题目链接:点击查看题目大意:给出两个字符串 sss 和 ttt,要求 “一段相同的前缀” + “一个不同的字符(满足s[i]<t[j])”+ “长度相同的任意后缀” 的组成方案数,其中可以选取 sss 和 ttt 的子序列用于构成题目分析:类比于最长公共子序列,这里将 dp[i][j]dp[i][j]dp[i][j] 定义为,由字符串 s[1:i]s[1:i]s[1:i] 和 t[1:j]t[1:j]t[1:j] 组成的相同前缀的个数,其实也就是方案数,转移的话 dp[i][j]=dp[i−1][原创 2021-07-31 20:17:45 · 233 阅读 · 0 评论 -
CodeForces - 1523E Crypto Lights(组合数学+推公式)
题目链接:点击查看题目大意:给出 nnn 个初始时熄灭的灯泡,每次操作会等概率打开一个灯泡,当每 kkk 个连续的灯泡中出现了大于一个亮着的灯泡时停止操作,问期望操作次数是多少题目分析:组合数学题留给队友补了,只是想解释一下这个模型,转换的过程借用洛谷大牛的题解了(侵权删)主要是想讲一下最后这个 “经典模型” ,其中 PiP_iPi 为操作 iii 次后,还没有结束的方案数。可以这样考虑,因为任意两个灯泡之间需要间隔为 kkk,所以放 iii 个灯泡两两之间需要有 i−1i-1i−1 个隔板隔开,而原创 2021-06-04 10:47:41 · 301 阅读 · 0 评论 -
CodeForces - 560E Gerald and Giant Chess(组合数学+dp)
题目链接:点击查看题目大意:给出一个 n∗mn*mn∗m 的矩阵,其中有 kkk 个坏点,每次只能向右走或向下走,问从点 (1,1)(1,1)(1,1) 到点 (n,m)(n,m)(n,m) 共有多少种不同的路线题目分析:刷知乎看到的一道题,心血来潮就想写题了数据范围 n,mn,mn,m 都是 1e51e51e5 级别的,而 kkk 却只有 200020002000,所以从坏点入手,考虑 dpdpdp 和组合数学首先对于两个点 (x1,y1)(x1,y1)(x1,y1) 和 (x2,y2)(x2,y原创 2021-04-16 18:47:22 · 929 阅读 · 8 评论 -
CodeForces - 1425D Danger of Mad Snakes(容斥+组合数学)
题目链接:点击查看题目大意:初始时有一个二维平面, 平面上给出 n 条蛇,现在可以选择 m 条不同的蛇进行捕杀,当选择了某条蛇,其所在的坐标可以覆盖到的半径为 r 的范围内的蛇都会被捕杀,更确切的说,选择了位置 ( x , y ) 的蛇,那么 ( x - r , y - r ) ~ ( x + r , y + r ) 这个矩形内的蛇都会被捕杀,每条蛇都有自己的价值,每次捕杀的价值是(所有被捕杀的蛇的价值和)的平方,问所有方案的价值和是多少题目分析:比较巧妙的一道容斥题目,首先看到平方应该顺着去思考,原创 2020-12-09 22:05:12 · 1099 阅读 · 8 评论 -
CodeForces - 336D Vasily the Bear and Beautiful Strings(dp+组合数学)
题目链接:点击查看题目大意:给出一个 01 字符串,规定求值的过程如下:每次选择末尾的两个数字: 如果为 0 0 ,那么替换成一个 1 否则替换成一个 0 循环往复,直至只剩一个数字位置,剩下的数字即为所求现在问,对于所有长度为 n + m 的 01 字符串中,同时满足下列条件的字符串有多少个恰好有 n 个 0 和 m 个 1 求值之后得到的答案等于 g(题目给出)题目分析:网上一堆纯组合数学的题解,但是边界需要判断的很麻烦,不太喜欢那种解法(也可能是我太菜了,看不明白大佬们的原创 2020-12-02 15:20:31 · 308 阅读 · 4 评论 -
CodeForces - 894B Ralph And His Magic Field(组合数学+思维)
题目链接:点击查看题目大意:给出一个 n * m 的棋盘,需要在棋盘内填充数字,使得每一行、每一列的乘积都等于 k,问有多少种方案题目分析:因为 k 只可能是 1 或 -1,所以在棋盘内填充的数字无非也只有两种首先需要特判一种特殊情况,就是 n 和 m 的奇偶性不同,且 k 为 -1,此时我们假设 n 为奇数,m 为偶数。因为 k 为 -1,所以每一行、每一列 -1 的个数必须为奇数个才行,所以对于行来说,共有(奇数 * 奇数)个 -1,而对于列来说,共有(奇数 * 偶数)个 -1,相互矛盾,故原创 2020-11-26 16:59:13 · 198 阅读 · 0 评论 -
CodeForces - 1420D Rescue Nibel!(组合数学+离散化)
题目链接:点击查看题目大意:给出 n 盏灯,每盏灯在 [ l , r ] 这段时间内会保持点亮的状态,问恰好有 k 盏灯同时点亮,有多少种组合方式题目分析:因为每盏灯都有一个开始亮的时间和一个熄灭的时间,不难想到用差分去维护每盏灯点亮的时间,不过如果是对于每个时间戳去计算贡献的话,很容易重复计算,因为在不同的时间戳上,如果选择的 k 盏灯相同的话,是不会重复计算贡献的,但是每盏灯都有一个开始亮的时间,也就是 l[ i ],所以我们不妨从这里入手对于某个时间戳来说,此时如果有 sum 个灯是亮着的原创 2020-09-26 14:38:51 · 502 阅读 · 0 评论 -
HDU - 4248 A Famous Stone Collector(dp+组合数学)
题目链接:点击查看题目大意:给出 n 种不同种类的石子,每种石子的个数是 a[ i ] 个,记 sum 为石子的总数,问用 k ∈ [ 1 , sum ] 个石子组成的不同排列组合有多少种题目分析:考虑 dp,dp[ i ][ j ] 代表的是到了第 i 堆为止,已经选了 j 个石子的答案,那么转移方程就是,dp[ i ][ j ] += dp[ i - 1 ][ j - k ] * C[ j ][ k ] ,理解起来也比较简单,k 的意思是从第 i 堆选择了 k 个石子,当从第 i 堆选择了 k.原创 2020-09-18 14:48:45 · 202 阅读 · 0 评论 -
ZOJ - 4114 Flipping Game(dp+组合数学)
题目链接:点击查看题目大意:给出一个长度为 n 的 01 字符串表示 n 个灯泡的状态,1 为点亮,0 为熄灭,现在需要进行 k 轮操作,每轮操作可以选择恰好 m 个位置,将灯泡的状态置反,现在给出初始状态和终止状态,问有多少种方案可以到达题目分析:首先不难看出,如果对一个相同的位置操作偶数次,不会改变其状态,只有操作次数为奇数时才会改变其状态,那么设计二维 dp ,dp[ i ][ j ] 代表的是到达第 i 轮操作时,共有 j 次操作次数为奇数的方案数,转移的话,就是枚举 k ,代表的是当前选择原创 2020-09-17 17:27:18 · 211 阅读 · 0 评论 -
HDU多校5 - 6822 Paperfolding(组合数学)
题目链接:点击查看题目大意:给出一张纸,每次对折可以向上,下,左,右四个方向对折,都是等概率的,现在问对折n 次后,在中心画一个十字切开后能切成几份题目分析:模拟一下可以看出水平对折和垂直对折相互独立,因为总的对折次数为 n ,所以设水平对折的次数为 x,那么垂直对折的次数就是 y 次,且满足 x + y = n ,答案就是 ( 2^x + 1 ) * ( 2^y + 1 )这样期望就是,写这篇博客重点是记录一下化简的过程,需要用到的前置知识就是:C(n,m)表示组合数学n个数中选m个的..原创 2020-08-08 01:55:41 · 306 阅读 · 0 评论 -
牛客多校6 - Binary Vector(组合数学+推公式)
题目链接:点击查看题目大意:给出一个 n * n 的 01 矩阵,求满秩的概率题目分析:首先公式是:稍微解释一下吧,将 n * n 的矩阵视为 n 个长度为 n 的向量,对于每一个长度为 n 的向量,都有 2^n 种情况,因为要求 n 个向量线性独立,所以我们依次讨论:对于第一个向量来说,只需要至少有一个位置为 1 即可,即全部为 0 的情况不满足条件,此时满足条件的情况为 对于第二个向量来说,需要满足的条件是,不能全部为 0 ,且不能被第一个向量所表示,此时满足条件的情况为 对于第三个原创 2020-07-28 02:03:59 · 818 阅读 · 4 评论 -
ICPC Pacific Northwest Regional Contest 2016 - Tournament Wins(组合数学求期望)
You are one of 2^k competitors invited to enter a single elimination tournament. You are rankedrth in the published rankings. Furthermore, you know that in any match between two players, theone ranked higher will always win.The only source of uncertaint.原创 2020-06-21 22:40:55 · 550 阅读 · 0 评论 -
CodeForces - 1366E Two Arrays(组合数学+思维)
题目链接:点击查看题目大意:给出一个长度为 n 的序列 a ,再给出一个长度为 m 的序列 b ,题目保证序列 b 是严格递增的,我们需要将 a 分割成恰好 m 段,使得每一段的最小值恰好等于 b[ i ] ,问有多少种分割方法题目分析:我们需要将序列 a 恰好分为 m 段的话,如果知道每一段的左右区间的取值范围后,根据乘法原理不难算出答案,但又因为每一段的左端点和右端点都是不断变化的,看似不太好直接求解仔细分析一下不难看出,因为相邻的两段之间是拼接而成的,所以上一段的终点,也就决定了下一段的起原创 2020-06-13 02:50:50 · 472 阅读 · 0 评论 -
CodeForces - 1359E Modular Stability(组合数学)
题目链接:点击查看题目大意:给出一个 n 和 k ,要求构造一个长度为 k 的严格递增数组 a[ i ] ,且 1 <= a[ i ] <= n ,满足任意整数 x ,对下列的等式恒成立,其中 p 是数组 a 的一种排列:现在给出 n 和 k ,问可行的数组 a 有多少种题目分析:首先需要知道如何构造出数组 a ,因为需要满足任意排列后的顺序取模的结果都要相同, 不难看出任意两个元素的 gcd 都为 a[ 1 ] 时满足条件,换句话说,所有的数必须都是 a[ 1 ] 的倍数,可以原创 2020-05-29 17:07:21 · 350 阅读 · 0 评论 -
牛客 - 弦(卡特兰数)
题目链接:点击查看题目大意:给定一个圆,圆上有2N个互不重叠的点。每次操作随机选择两个先前未选择过的点连一条弦,共连成N条弦,求所有弦不交的概率。题目分析:圆内连弦是卡特兰数的经典应用,如果将最后的概率视为分子除以分母的话,那么分子就是可行方案数,分母是总共的方案数,分子自然就是卡特兰数了,而分母我们可以想象为先选取两个点连弦,再不断选取剩下点中的两个点连弦,则公式就是,注意,这里计算出来的方案数是这 n 条弦排列组合后的答案,需要除以 n! 才是组合数的答案然后配合逆元实现就好了代码:原创 2020-05-10 23:35:56 · 400 阅读 · 0 评论 -
牛客 - 小朋友你是否有很多问号(容斥+组合数学)
题目链接:点击查看题目大意:先抛出公质数的定义,若数 num 与 m 个数都互质,则称 num 为 m 个数的 m元公质数 ,现在给出 n 个数和 m ,需要求出任意 m 个数的所有 m 元公质数(要求公质数也在这nn个数中)之和题目分析:读完题后可能有点迷茫,但是仔细分析一下发现并不难,首先 m元公质数 要求 m 个数与其互质,且这个公质数也要在 n 个数之中,不难想到可以枚举这 n 个...原创 2020-05-02 21:33:34 · 363 阅读 · 0 评论 -
CodeForces - 1330D Dreamoon Likes Sequences(组合数学)
题目链接:点击查看题目大意:给出一个限制 d 与模数 mod ,求出可以构造出的满足条件的数组 a 的个数,需要满足以下条件:数组 a 的长度大于等于 1 数组 a 严格递增 数组 a 的最小值大于等于 1 ,数组 a 的最大值小于等于 d 对于数组 a ,构造出一个数组 b : i == 1 时:b[ 1 ] = a[ 1 ] i > 1 时:b[ i ] = b[ ...原创 2020-04-04 14:13:59 · 523 阅读 · 0 评论 -
CodeForces - 1327E Count The Blocks(组合数学)
题目链接:点击查看题目大意:给出一个 n ,表示出 0 ~ 10^n - 1 内的所有整数,且用前导零补齐,即所有的数长度都为 n ,规定连续的且数值相同的一段称为block,现在问对于每个 i ∈ [ 1 , n ] ,10^n 个数中共有多少个长度为 i 的 block题目分析:比较简单的一道组合数学题目,分情况讨论一下就好了:i == n:显然答案只有十种情况 i < n...原创 2020-03-24 12:28:06 · 650 阅读 · 0 评论 -
CodeForces - 1312D Count the Arrays(组合数学)
题目链接:点击查看题目大意:给出一个 n 和 m ,求满足条件的数组有多少个数组包含 n 个元素 每个元素的取值为 1 ~ m 包含且仅包含一对相同的元素 存在一个位置 pos ,使得 [ 1 , pos ] 内严格递增,[ pos , n ] 内严格递减题目分析:读完题后不难看出是一道排列组合的题目,本着先选数,再排序的原则,我们一步步分析首先我们需要选出 n 个元素才能构成...原创 2020-03-10 02:39:32 · 521 阅读 · 0 评论 -
HDU - 3629 Convex(计算凸四边形个数)
题目链接:点击查看题目大意:给出n个点,计算能组成的凸四边形个数题目分析:朴素方法是枚举四个点,n^4的复杂度,而这个题目的n给到了700,显然是不行的,既然点的个数比较大,正难则反,我们考虑组合数学,首先n个点能组成C(n,4)个四边形,我们只要减去凹四边形的个数就是答案了,我们记凹四边形的个数为ans,凹四边形,换一种说法,就是取三个点组成的三角形,问有多少个点落在三角形内,那么三角形...原创 2020-01-28 17:19:00 · 819 阅读 · 0 评论 -
CodeForces - 1288C Two Arrays(组合数学)
题目链接:点击查看题目大意:给出一个n和m,要求我们构造出两个数组a和b,满足以下要求:两个数组的长度都为m 每个元素的取值都为1~n 对于每一个位置都有a[i]<=b[i] 数组a非降序 数组b非升序输出有多少种方案题目分析:因为涉及到方案数了,所以不是dp就是组合数学,我看大佬们都用dp写的,奈何我不会dp,就只能用组合数学乱搞了首先前置知识我们需要知道:从...原创 2020-01-15 11:48:57 · 634 阅读 · 0 评论 -
HDU - 5187 zhx's contest(快速幂+快速加+组合数学)
题目链接:点击查看题目大意:给出一个n,现在有1~n的全排列,规定如果可以将其中一种排列分为两部分:a1-ai单调递增/单调递减 ai-an单调递增/单调递减则称这种排列为美丽的排列,现在问一共有多少种美丽排列题目分析:先说一下,题目和代码不太一样的地方,就是题目的意思是两种情况,而读完题后我以为有四种情况,因为有单调递减和单调递增两种状态,以及前后两个位置,显然是2*2=4种情况...原创 2020-01-13 22:57:30 · 207 阅读 · 0 评论 -
CodeForces - 1284C New Year and Permutation(组合数学+思维)
题目链接:点击查看题目大意:首先定义名词“排列”的意思是,一段数列中的数字升序排序后可以组成连续的一段数列,换句话说,满足一段区间内的最大值-最小值=r-l则称这个区间的数列为“排列”,规定每个满足“排列”的子数列对答案的贡献为1,比如对于数列(6,7,1,8,5,3,2,4),其满足“排列”的子数列分别为[1,2],[5,8],[6,7],[3,3],[8,8],贡献为5。现在给出一个数字n...原创 2020-01-05 13:13:46 · 455 阅读 · 0 评论 -
UVA - 11806 Cheerleaders(组合数学+容斥原理)
题目链接:点击查看题目大意:给出一个n*m的矩阵,现在有k个拉拉队员,要求在第一列、最后一列、第一行和最后一行至少有一个拉拉队员,注意以下要求:四个角上的拉拉队员可以同时属于两条边 每个方格至多只能存在一个拉拉队员问能有多少种分配方案题目分析:这个题目很明显的要用到组合数学了,我们假设C(n,m)代表的是从n个物品中选出m个的方案数,如果没有约束条件,那么答案显然是C(n*m,k)...原创 2019-12-23 10:26:58 · 459 阅读 · 1 评论 -
CodeForces - 1267K Key Storage(组合数学)
题目链接:点击查看题目大意:给出一个正整数num,现在将其进行除以2、除以3、除以4....的操作,直到num变为0为止,期间记录每一次运算的余数,将其排序后得到一个集合,现在问有多少不同的数字经相同处理后的集合与num的集合相等题目分析:如果想让余数组成的集合相等,需要排列组合计算个数,比如正常的全排列,若是有n个数,那么对于第一个位置,可以有n种选择,对于第2个数,可以有n-1种选择,...原创 2019-12-18 10:34:42 · 362 阅读 · 0 评论 -
CodeForces - 1236B Alice and the List of Presents(组合数学+快速幂)
题目链接:点击查看题目大意:爱丽丝现在有n种礼物,每种礼物有无限种,现在有m个盒子,需要向里面放礼物,满足以下两个条件:每个背包里不能出现相同种类的物品(允许有空背包) 在所有的m个背包中,每种物品都出现过。问方案数对1e9+7取模题目分析:一开始我的思路方向就错了,我是对于每个盒子有2^n种子集,然后再讨论的m个盒子,发现不管怎么推都没办法满足上面的第二个条件,后来看了题解后知道...原创 2019-12-07 02:07:20 · 243 阅读 · 0 评论 -
HDU - 2049 不容易系列之(4)——考新郎(错排问题+组合数学)
题目链接:点击查看题目大意:有n对新婚夫妇,有m个新郎找错了新娘,问发生这种情况的可能题目分析:匹配错误问题可以类比于全错排问题,这里插眼放一个讲的不错的博客:https://blog.csdn.net/qq_41661809/article/details/83960179然后我们就可以直接背过结论了,关于全错排的递推公式是:F(n) = (n-1)* [F(n-2) + F...原创 2019-10-03 12:23:46 · 756 阅读 · 0 评论 -
HDU - 6333 Problem B. Harvest of Apples(莫队变形+思维+组合数学,好题)
题目链接:点击查看题目大意:给出n个苹果树,每个苹果树上可以摘一个苹果,问摘不超过m个苹果有多少种方式题目分析:首先根据题意和样例可以推出,答案就是一个组合数之和,设C(n,m)为从n个数中选m个数的方案数,再设S(n,m)为本题答案数,则有S(n,m)=C(n,0)+C(n,1)+....+C(n,m-1)+C(n,m),因为样例组数给到了1e5,所以我们肯定不能暴力去计算每一个值n的答...原创 2019-12-02 03:38:14 · 382 阅读 · 0 评论 -
CodeForces - 1000D Yet Another Problem On a Subsequence(动态规划+组合数学)
题目链接:点击查看题目大意:给出n个数字组成的序列,现在规定“好数组”指的是一个连续序列a1,a2,...ak的a1=k-1,再规定“好序列”是可以分为若干个“好数组”的序列,现在问这n个数字中有多少个子序列是“好序列”题目分析:这个题目的好数组+好序列=好序列,而且好数组只与第一项有关,所以我们可以从后向前递推,dp[i]代表的是i~n之中好序列的个数,这样我们设计出的转移方程就是for...原创 2019-11-19 00:27:35 · 347 阅读 · 0 评论