当前位置: 首页 > news >正文

计数杂题选做(1)

为 CSP-S 和 NOIP 做准备,所以做的题难度并不是非常大,通常以绿蓝题为主。

一:P1287 盒子与球

一眼第二类斯特林数。

递推式 C n k = C n − 1 k − 1 + k × C n − 1 k C_{n}^{k}=C_{n-1}^{k-1}+k\times C_{n-1}^{k} Cnk=Cn1k1+k×Cn1k。考虑前 n − 1 n-1 n1 个球放好,现在放第 n n n 个球,是新放一个盒子还是放原来盒子。这种思路在许多组合排列相关的题中能用到,下一题就是例子。

注意此题盒子也是不相同的,还要再乘 r r r 的阶乘。

二:P2401 不等数列

f i , j f_{i,j} fi,j 表示 1 1 1 i i i 的排列,小于号数为 j j j 的方案数。

仍然考虑递推,假设加入了第 i i i 个数,它比原来的数都大。分类讨论它插在最前面、最后面、两数中间且原来符号为小于号、大于号。会发现小于号数量只会不变或加 1 1 1。然后就得到 f i , j = f i − 1 , j − 1 × ( i − j ) + f i − 1 , j × ( j + 1 ) f_{i,j}=f_{i-1,j-1}\times (i-j)+f_{i-1,j}\times (j+1) fi,j=fi1,j1×(ij)+fi1,j×(j+1)

三:P2606 [ZJOI2010] 排列计数

观察下标的关系,会发现实际就是求以 1 1 1 为根的小根堆个数,这样的计数也很经典。考虑计算 f i f_i fi,表示有 i i i 个节点的小根堆个数,容易发现只要确定左儿子数量 l l l,那么就可以算出 f i f_i fi= C i − 1 l × f l × f r C_{i-1}^{l}\times f_l\times f_r Ci1l×fl×fr。表示除去根外的剩下节点中选一部分当左儿子,剩下为右儿子。而左右儿子互不影响,乘法原理。

注意这道题组合数的求解要用 Lucas 定理。

四:P5689 [CSP-S2019 江西] 多叉堆

这道题和上一道题有些相似。

维护树根用并查集就行了,记录一个树根的 s z sz sz

再考虑合并,将 x x x 并到 y y y,令 f y ← f y × f x × C s z y − 1 s z x f_y\gets f_y\times f_x\times C_{sz_y-1}^{sz_x} fyfy×fx×Cszy1szx,原理与上题一样。

五:P5684 [CSP-J2019 江西] 非回文串

考虑 dp,发现求非回文串很难求,正难则反,发现求回文串的话就简易许多了。

总数量为 n ! n! n!,对于回文串,我们只考虑左右中一侧,设每个字符出现次数 c n t i cnt_i cnti 为偶数,那么我们在一侧必要放 c n t i 2 \frac{cnt_i}{2} 2cnti 个,由于字符有下标关系,所以用排列,放字符数为 A c n t i c n t i 2 A_{cnt_i}^{\frac{cnt_i}{2}} Acnti2cnti,然后 n 2 \frac{n}{2} 2n 个位置,也可以任意排列,所以最终答案为 n ! − n 2 ! × A c n t i c n t i 2 n!-\frac{n}{2}!\times A_{cnt_i}^{\frac{cnt_i}{2}} n!2n!×Acnti2cnti

六:P6146 [USACO20FEB] Help Yourself G

2 n 2^n 2n 个集合,肯定不能全部枚举,对于这种很常见的解决方法时考虑一个元素加入对全部方案的贡献。

我们先将线段按左端点从小到大排序,记 f i f_i fi 为前 i i i 条线段的总方案数。对于新的一条线段,不加入则为 f i − 1 f_{i-1} fi1,加入了,之前与它相交的方案数仍为 f i − 1 f_{i-1} fi1,若不与它相交,设数量为 j j j,则会产生 2 j × 1 2^j\times 1 2j×1 的贡献。

最后转移方程就出来了。 j j j 可以考虑前缀和计算,反正数据范围也不大。


http://www.mrgr.cn/news/50453.html

相关文章:

  • 代码随想录训练营Day34 | 134. 加油站 | 135. 分发糖果 | 860.柠檬水找零 | 406.根据身高重建队列
  • Vue 上传图片前 裁剪图片
  • Loss:CornerNet: Detecting Objects as Paired Keypoints
  • 【软件考试】错误校验码-奇偶校验码,CRC,海明码...
  • 漏扫工具Appscan使用(非常详细)从零基础入门到精通,看完这一篇就够了。
  • 基于SSM出租车管理系统的设计
  • PHP B2C购物系统小程序-计算机毕业设计源码95294
  • SAP 更改代理类型字段
  • ​时间序列预测(五)——优化器(Optimizer)、学习率
  • LLaMA-Factory 让大模型微调变得更简单!!
  • 解读 ASS:Uniswap 应用链 Unichain 的排序机制
  • 统一时序预测模型,上下文长度首次扩展至千级别!!!
  • 重生之我在代码随想录刷算法第二十四天 | 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II
  • 索引设计的原则主要包括以下几点:
  • 云商城系统如何降低长期成本
  • Colorful/七彩虹隐星P16 23 Win11原厂OEM系统 带COLORFUL一键还原
  • 香橙派刷机和开发环境准备(ubuntu22.04版)_随记1
  • 成都跃享未来教育咨询有限公司抖音小店共绘教育篇章
  • 足底筋膜炎怎么治疗最好的办法
  • 神经网络反向传播交叉熵 计算损失函数对隐藏层偏置b1的梯度