排列数和组合数
文章平均质量分 80
ZigZagK
一个蒟蒻。
展开
-
【DP+组合数学】Codeforces559C[Gerald and Giant Chess]题解
题目概述nn 行 mm 列的过河卒问题,但有 kk 个障碍物(不能经过),求方案数。解题报告哇,最近考到这道题,考试时完全不会做啊,考完后发现很水啊Orz。 朴素的障碍物过河卒问题直接刷递推,效率是 O(n×m)O(n\times m) ,扛不住。而 kk 比较小,显然要在障碍物上搞事情。 先将障碍物排序,定义 f[i]f[i] 表示前 ii 个障碍物只过第 ii 个障碍物的方案数。我们认为 (原创 2017-07-30 15:37:42 · 367 阅读 · 0 评论 -
【组合数学】HDU5698[瞬间移动]题解
题目概述刚开始你在 (1,1)(1,1) ,每次能够瞬间移动到右下任意一个格子(如下图),求到 (n,m)(n,m) 的方案数。解题报告组合数很多性质我不知道啊QAQ,做到题目慢慢补吧。 ∑i=0nCinCim=Cnn+m(n≤m)\sum_{i=0}^{n}C_{n}^{i}C_{m}^{i}=C_{n+m}^{n}(n\le m) 证明:二项式定理: (a+b)n(a+b)^n原创 2017-08-24 21:04:58 · 615 阅读 · 0 评论 -
【Prufer编码+组合】BZOJ1005(HNOI2008)[明明的烦恼]题解
题目概述有 nn 个点,每个点的度数为 did_i (若 di=−1d_i=-1 则度数没有限制),求满足条件的树的个数。解题报告根本不会做好吗!首先介绍一下Prufer编码:树 →\to Prufer编码 找到编号最小的度为 11 的节点,删除该点及连接该点的边,将与该点相邻的点加入数列。重复删除/加入,直到剩下两个节点,最后的数列就是Prufer编码(长度为 n−2n-2 )。Prufe原创 2017-10-29 18:48:06 · 318 阅读 · 1 评论 -
【组合】Codeforces40E[Number Table]题解
题目概述有 n×mn\times m 的 1,−11,-1 矩阵,现在 k(0≤k<max{n,m})k(0\le k<max\{n,m\}) 个位置已经确定,求每行每列乘积均为 −1-1 的方案数。解题报告好题!注意到 0≤k<max{n,m}0\le k<max\{n,m\} ,所以至少有一行或一列是没有任何一个元素确定过了的。令 n>mn>m ,我们可以先把其他 n−1n-1 行确定下来(组合原创 2017-11-09 11:24:16 · 326 阅读 · 0 评论 -
【组合+错排】BZOJ4517(Sdoi2016)[排列计数]题解
题目概述如果 ai=ia_i=i 则 ii 是稳定的。给出 n,mn,m ,求稳定数为 mm 的 nn 的排列的个数。解题报告其实很简单……先选出 mm 个稳定位置,然后另外 n−mn-m 强制不稳定。强制不稳定也就是 ai≠ia_i\not=i ,即错排。结果发现我并不记得错排了……于是去看了一下……读者老爷先看代码吧……我明天填坑……示例程序#include<cstdio>#include<c原创 2017-11-09 22:59:48 · 478 阅读 · 0 评论 -
【组合】BZOJ3505(Cqoi2014)[数三角形]题解
题目概述求 n×mn\times m 网格中的三角形个数。解题报告首先肯定是用总方案数 (n3)n\choose 3 减去不合法的方案数要方便很多。但是怎么求不合法(三点共线)的方案数?有个结论是横长为 xx 纵长为 yy 的线段中整点的个数为 gcd(x,y)+1gcd(x,y)+1 ,yy一下不难得出。那么只要枚举 x,yx,y ,然后算出共线三角形的方案数 gcd(x,y)−1gcd(x,y)原创 2017-12-03 11:30:52 · 399 阅读 · 0 评论