摘要:
"传送门" 解题思路 好神仙的思路,首先一种排列中按照最高点将左右分开,那么就是要在左边选出$a 1$个,右边选出$b 1$一个,这个如何计算呢?考虑第一类斯特林数,第一类斯特林数是将$n$个数分成$m$个圆排列的方案数,在这道题中,假如划分成圆排列之后,将圆排列从最大值处断开可以造成$1$的贡献。 阅读全文
摘要:
"传送门" 解题思路 首先所有物品是一定要用完的,那么可以按照物品考虑,就是把每种物品分给$n$个人,每个人分得非负整数,可以用隔板法计算。设物品有$m$个,方案数为$C(n+m 1,n 1)$。但这样会有人一个也分不到的情况,就容斥一下。 代码 cpp include include includ 阅读全文
摘要:
[传送门[(http://www.51nod.com/Challenge/Problem.html ! problemId=1518) 解题思路 直接算不好算,考虑容斥,但并不能把行和列一起加进去容斥,这会使时间复杂度非常高,那么就考虑枚举行后$dp$。设$f[i]$表示存在$i$列有线,任意一行无 阅读全文