排列组合问题选胡

排列组合问题选胡

胡几个排列组合问题,可能有些数学相关,博主没学过数竞,仅为一点拙见。

有时间还会更。

1 牛客练习赛80 C 不降数

定义一个非负整数是不降数,当且仅当它的各位数字从高位到低位单调不降,同时这个数中不能出现 0,求出恰好有 n 位的不降数的个数。

n 个数位,第一个数位前固定好一个板子,在算上两边的 (n+1) 个空放进 8 个插板,可以在一个空内放多个插板,插板之间无区分。一个数位的数就是它前面的插板个数,由于第一个固定了一个板子,所以不会有前导零。这样答案就变成求插板方案数。问题转化成 8 个球放进 (n+1) 个盒子,球之间无区分,求方案个数。

假装有 (n+1)+81 个白球,把其中 n 个球染成黑的,这样靠边的两段白球和两个黑球之间的一段白球就可以看成是一个盒子内的球,这样恰为答案。故答案为 ((n+1)+81n)=(n+8n)=(n+88)

2

求证:

d=1n(n1d1)d!nnd=nn

考虑组合意义。
右:用 n 种颜色染 n 个球。
左:枚举最大的 d 使得前 d 个球的颜色互不相同。先确定后 (nd) 个球的颜色(nnd),然后确定前 d 个球是哪些颜色(注意到一定有一个球与第 (d+1) 个球相同,所以是 ((n1d1)),最后考虑前 d 个球分别是什么颜色(d!

来源 U 群群友。

posted @   do_while_true  阅读(81)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

This blog has running: 1845 days 1 hours 33 minutes 52 seconds

点击右上角即可分享
微信分享提示