组合数学入门—TwelveFold Way
组合数学入门—TwelveFold Way
你需要解决\(12\)个组合计数问题。
\(n\)个有标号/无标号的球分给\(m\)个有标号/无标号的盒子
盒子有三种限制:
A、无限制
B、每个盒子至少有一个球
C、每个盒子至多有一个球
共有\(2\times2\times3=12\)种问题:
为了方便 将有标号记为L(labelled) 无标号记为U(unlabelled)
那么一个问题可以用缩写代替,如ULA表示\(n\)个无标号的球分给\(m\)个有标号的盒子,一共有多少种方案。
现在你的任务是,给定问题的缩写和\(n,m\),求方案数对\(998244353\)取模后的值。
LLA
这个很明显答案是\(m^n\),每一个球有\(m\)种选择
LLB
发现这个条件不好满足,考虑容斥,每次强制枚举\(i\)个盒子里面没有球
\[
ans = \sum_{i = 0}^m\binom{n}{i}(m - i)^n
\]
LLC
我们发现,因为要求球全部放入盒子,所以当\(n > m\)肯定无解
否则答案就是
\[
\binom{m}{n}\times n!
\]
看看那几个盒子里面有球,并且因为球是不同的,所以要再乘上排列数
LUB
发现LUB和LLB的区别就是其实就是\(\{1,2,3\},\{4,5\}\)和\(\{4,5\}\),\(\{1,2,3\}\)看做一种
那么我们直接把LLB的答案除以\(m!\)即可
这就引出了我们要介绍的东西,第二类斯特林数
第二类斯特林数,记为\(S\),\(S_n^m\)表示把\(n\)个有标号的球放到\(m\)个无标号的盒子里面的方案数
我们可以比较简单的理解第二类斯特林数的递推公式
\[
S_{n}^m = S_{n - 1}^{m - 1}+ m\times S_{n - 1}^m
\]
每次新开一个盒子放\(i\)或者是放入之前的任何一个集合之中
LUA
我们既然知道了LLB的答案,直接枚举多少个盒子放了球
\[
ans = \sum_{i = 1}^mS_{n}^i
\]
到此为止我们可以发现一个奇妙的性质A和B是知一推一的,有无标号仅仅通过乘组合数推出来
LUC
这就是比较水的了,直接判断能否放下,放得下就是\(1\)
ULB
经典插板法的模型,ULB也可以在做是这样一个方程的正整数解的个数
\[
x_1+x_2+x_3+\dots +x_m = n
\]
那么我们看做这样\(n\)的球插入\(m - 1\)的版子.分割成\(m\)部分的方案数
所以方案数就是
\[
\binom{n - 1}{m - 1}
\]
ULA
我们继续上面的方程
设\(y_i = x_i+ 1\)
也就是我们现在要解决这个方程的正整数解的个数
\[
y_1+y_2+\dots+y_m = n+m
\]
同理,可以知道是
\[
\binom{n + m - 1}{m - 1}
\]
每一组\(y\)都对应着唯一一组\(x\)(因为\(x\)和\(y\)的关系是确定的)
ULC
首先,\(n > m\)肯定无解,接下来只需要考虑\(n\le m\)
否则答案就是\(\binom{m}{n}\)
UUC
同LUC
UUB
这个不能通过ULB除以\(m!\)得到
因为ULB中我们尽管盒子不同,但是球是相同的,所以我们会把\(\{2,3,3\}\)和\(\{2,3,3\}\)看做同一种方案,所以直接除以\(m!\)的前提是上面的例子被看做不同方案,否则就没有排列一说
那我们设\(P_{i,j}\)表示\(i\)个无标号的球分到\(j\)个有标号的盒子里的方案数
为了保证不会重复计数,我们强制盒子的球数目不增
转移要么把新球新开一个盒子,要么在前面所有盒子都放一个球
\[
P_{i.j} = P_{i - 1,j - 1} + P_{i - j,j}
\]
转移边界有\(P_{0,0} = 1\)
这其实就是划分数
UUA
首先,我们可以采用老套路,暴力枚举有多少个盒子中放球
\[
ans = \sum_{i = 1}^m P_n^i
\]
另外类似于ULA的思路,我们发现答案其实是\(P_{n + m}^m\)
组合数学入门—TwelveFold Way的更多相关文章
- [BZOJ2111]:[ZJOI2010]Perm 排列计数(组合数学)
题目传送门 题目描述 称一个1,2,...,N的排列${P}_{1}$,${P}_{2}$,...,${P}_{N}$是Magic的,当且仅当2≤i≤N时,${P}_{i}$>${P}_{\fr ...
- [BZOJ2729]:[HNOI2012]排队(组合数学)
题目传送门 题目描述 某中学有n名男同学,m名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的) ...
- P5689 多叉堆
写在前面 OI 生涯中 AC 的首道组合数学应用题. 开题 5min 发现规律,写了半下午代码,调了两天,然而甚至没过样例,心态崩了.几天之后重新写了一份代码才 AC. 虽然思维难度不大,但毕竟是联赛 ...
- (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...
- 算法竞赛入门经典+挑战编程+USACO
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...
- ACM入门步骤(一)
一般的入门顺序: 0. C语言的基本语法(或者直接开C++也行,当一个java选手可能会更受欢迎,并且以后工作好找,但是难度有点大),[参考书籍:刘汝佳的<算法竞赛入门经典>,C++入门可 ...
- ACM基础算法入门及题目列表
对于刚进入大学的计算机类同学来说,算法与程序设计竞赛算是不错的选择,因为我们每天都在解决问题,锻炼着解决问题的能力. 这里以TZOJ题目为例,如果为其他平台题目我会标注出来,同时我的主页也欢迎大家去访 ...
- ACM入门指南
本文已经转移到了:http://harryguo.me/2015/11/03/ACM-%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/ 什么是ACM? 想必打开这篇博客的人已 ...
- 数位dp总结 之 从入门到模板
转发自WUST_WenHao巨巨的博客 基础篇 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数.所谓数位dp,字面意思就是在数位上进行dp咯.数位还算是比较好听 ...
随机推荐
- eclipse忽略js文件报错
eclipse中js文件报错的情况,或许大家早已习以为常了,那么有什么好的方法可以将其忽略掉呢?如果你也在寻找此问题,那么本文或许可以帮助到你忽略某个js文件报错的方法: Project Proper ...
- spring boot + mybatis 访问 neo4j
之前有通过rest的风格去访问,但是每次需要访问时候将statement一并加入header中去数据库执行,方式简单.且思路清晰,但是不便于形成模板调用,固采用mybaits来集成. 1.关键pom. ...
- bzoj1821 部落划分
Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...
- C#中的字段,常量,属性与方法
以前是学C++的,初次学微软的C#头都大了.什么字段,常量,属性,方法......微软把别人的东西拿来糅合在C#里,弄成了一个“大杂烩”.其实,说到底,“字段”不就是“变量”吗,所谓的“方法”不就是“ ...
- 数组的查找,删除 Day07
package com.sxt.arraytest2; /* * 形参列表的作用:1.接受方法调用处传来的实参 * 2.规定了实参传入数据的类型 */ import java.util.Arrays; ...
- 2018-7-9-dotnet-设计规范-·-数组定义
title author date CreateTime categories dotnet 设计规范 · 数组定义 lindexi 2018-07-09 14:26:48 +0800 2018-2- ...
- Gym - 101480K_K - Kernel Knights (DFS)
题意:有两队骑士各n人,每位骑士会挑战对方队伍的某一个位骑士. (可能相同) 要求找以一个区间s: 集合S中的骑士不会互相挑战. 每个集合外的骑士必定会被集合S内的某个骑士挑战. 题解:讲真被题目绕懵 ...
- Python语言的特点
- 同一个C语言工程不同C文件之间的函数互相调用问题
定义一个function.h文件来声明这些函数: //#ifndef __FUNCTION_H__//#define __FUNCTION_H__ int fun(int,int); int ...
- @bzoj - 4377@ [POI2015] Kurs szybkiego czytania
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 n, a, b, p,其中 n, a 互质.定义一个长度为 ...