传统题

news/2024/10/14 21:39:14
题面

$\quad $ 我们记 \(F(x)\)\(x\) 为真的方案数,\(len\) 为序列最长连续相同子段长度。

$\quad $ 那么就有:

\[ans=\sum _{i=1}^{n}F(len=i)*i \]

$\quad $ 也就是:

\[\sum _{i=1}^{n}F(len>=i) \]

$\quad $ 这里可以画个图,发现结果形如三角形,即可得出上式。再改变一下形式:

\[ans=nm ^{n} -\sum _{i=1}^{n-1}F(len<=i) \]

$\quad $ 然后考虑如何求解 \(F(len<=i)\) ,我们枚举这个序列分为 \(j\) 个区间,这些区间中元素的颜色一致且相邻区间颜色不同。可以发现,这样覆盖了全部的情况。

$\quad $ 发现所有区间的长度都小于等于 \(i\) 比较难做,没有限制的直接插空即可解决,所以我们考虑容斥,枚举这 \(j\) 个区间里有 \(k\) 个是长度大于 \(i\) 的,然后对于每一个枚举出来的 \(k\) ,我们将这几个区间长度减去 \(i\) ,那么这个问题就可以拿插空做了。于是得出式子:

\[ans=nm ^{n}-\sum _{i=1}^{n-1}\sum _{j=1}^{n}m(m-1) ^{j-1}\sum _{k=0}^{j}(-1) ^{k} C _{j}^{k} C _{n-ik-1}^{j-1} \]

$\quad $ 我们更换枚举顺序:

\begin{aligned}
ans&=nm ^{n} -\sum _{i=1}^{n-1}\sum _{k=0}^{n}(-1) ^{k}m\sum _{j=k}^{n}(m-1) ^{j-1}C _{j}^{k} C _{n-ik-1}^{j-1}\\
&=nm ^{n} -\sum _{i=1}^{n-1}\sum _{k=0}^{n}(-1) ^{k}m(n-ik) ^{-1}\sum _{j=k}^{n}(m-1) ^{j-1}C _{j}^{k} C _{n-ik}^{j}j
\end{aligned}

$\quad $ 现在看最后那个和式的组合意义。

$\quad $ 我们在 \(n-ik\) 个数中先选出 \(j\) 个数,再在这 \(j\) 个数中选出 \(k\) 个数,然后在 \(j\) 中选出一个数(下文记作 \(x\) )不染色,并对剩下的 \(j-1\) 个数染色,(这里的染色就是确定每个元素的种类,并且每个数只有 \(m-1\) 种可能)。

$\quad $ 然后我们可以先选出这 \(k\) 个数,然后再选出 \(x\)(注意 \(x\) 可以在那 \(k\) 个数中),然后去找能够包含他们的、大小为 \(j\) 的集合,并对集合中剩下的元素染色。

$\quad $ 对于现已经选择的数之外的数,他可以是选或不选,如果选了就有 \(m-1\) 种可能,那么就可以直接看做是给这些数染色,不过这里的每个元素有 \(m\) 种可能。

$\quad $ 那么这个时候 \(x\) 的位置就很重要了,这里就分出两种情况, \(x\) 在选出的 \(k\) 个数里、\(x\) 不在那 \(k\) 个数里。

$\quad $ 当 \(x\) 在那 \(k\) 个数中时,答案就是 \(C _{k}^{1}(m-1) ^{k-1}m ^{n-ik}\) ,也就是先确定出 \(x\) 的可能,然后对剩下的 \(k-1\) 个元素染色,再对这 \(k\) 个数外的的元素染色。注意这两种元素的染色可能数并不相同,见上文。

$\quad $ 当 \(x\) 不在那 \(k\) 个数里时,答案就是 \(C _{n-ik}^{1}(m-1) ^{n-ik-1} m ^{k}\) 。原理和上一种情况一样。

$\quad $ 那么我们就得出了最终的答案:

\[ans=nm ^{n}-m\sum _{i=1}^{n-1}\sum _{k=0}^{\lfloor\frac{n}{i+1}\rfloor}(-1) ^{k}(n-ik) ^{-1}[k((m-1) ^{k-1}m ^{n-ik})+(n-ik-1)(m-1) ^{n-ik-1} m ^{k}] \]

后记

$\quad $ 开始推式子的时候看 \(C _{j}^{k} C _{n-ik}^{j}\) 不是很顺眼,然后就给它展开凑项变成了 \(C _{n-ik}^{k}C _{n-ik-k}^{j-k}\) ,然后发现这个东西是可以推广的,也就是:

\[C _{n}^{m}C _{q}^{n}=C _{q}^{m}C _{q-m}^{q-n} \]

$\quad $ 证明:

\[C _{n}^{m}C _{q}^{n}=\frac{n!}{m!(n-m)!}\frac{q!}{n!(q-n)!}=\frac{q!}{m!(q-m)!}\frac{(q-m)!}{(q-n)!(n-m)!}=C _{q}^{m}C _{q-m}^{q-n} \]

$\quad $ 然后以为自己发现了什么了不得的东西,但是一想自己没那么厉害,怎么可能发现了前人没发现的东西,搜了一下发现在《具体数学》里提及了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71616.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

AE软件下载安装

Adobe AE安装步骤 2.1准备工作 https://pan.baidu.com/s/1Hdl1gGIpi4LH9zxUflv5DA?pwd=oap4 下载Adobe After Effects安装包并解压。 确保计算机满足软件安装的配置要求。 2.2安装过程 双击安装程序:双击解压后的文件夹中的 set-up安装程序。 更改安装位置:在安装界面点击文…

洛谷P1219八皇后问题

[USACO1.5] 八皇后 Checker Challenge 题目链接 题目描述 一个如下的 \(6 \times 6\) 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 \(2\ 4\ 6\ 1\ 3\ 5\) 来描述,…

Stanford CS149 -- Assignment 4: NanoGPT149

作业描述及代码参见:cs149gpt Warm-Up:访问张量 张量/数组都是按行存储的,四维数组可以看作元素为三维数组的数组,元素大小即为三维数组内元素总数,以此类推。 第 1 部分:简单(但不太高效)的注意力机制实现 主要实现两个矩阵乘法和一个 softmax 运算。第 2 部分:块矩阵…

AGC061F 做题记录

link 事实上这是 CSP模拟赛 #36 的 T4。 记 \(a_i,b_i\) 分别为前 \(i\) 个字符中 \(0\) 的个数对 \(n\) 取模后的值,\(1\) 的个数对 \(m\) 取模后的值。那么,记 \(k\) 为序列长度,合法的序列满足:\(\forall 1\le i < j\le k ,\ (a_i, b_i) \not = (a_j, b_j)\)\(a_k = …

消息队列之RabbitMQ

1.初识MQ 在分布式微服务中,不同服务接口之间的调用分为同步调用和异步调用。 使用同步调用有几种问题拓展性差 性能差 级联失败因此在大部分场景,我们使用的都是异步调用。 异步调用方式其实就是基于消息通知的方式,一般包含三个角色:消息发送者:投递消息的人,就是调用方…

【Azure Cloud Service】使用Key Vault Secret添加.CER证书到Cloud Service Extended Support中

使用Key Vault Secret添加.CER证书到Cloud Service Extended Support中问题描述 因为Key Vault的证书上传功能中,只支持pfx格式的证书,而中间证书,根证书不能转换为pfx格式,只能是公钥证书格式 cet 或者 crt,能通过文本工具直接查看base64编码内容。如一个证书链文件中可以…

java多线程基础知识速通

1.线程和进程的区别 进程是正在运行的程序实例,每个进程包含了多个线程,每个现场执行不同的任务 进程都有自己的内存空间,而一个进程下的线程们则是共享内存空间 线程更加轻量,线程上下文切换的成本远低于进程上下文切换的成本2.并行与并发的区别 并行是多核CPU一般执行相应…

程序员必看!从菜鸟到专家你要这么做,8年互联网老兵爆肝总结

“互联网行业工作8年多,在国内Top互联网大厂B(ytedance)AT中的两家待过。喜欢研究计算机基础原理,有移动端全栈(包括Android & iOS & 鸿蒙等)开发经验,对逆向和网络安全有一定经验。” 不管是在校大学生,还是初入职场的菜鸟,抑或是在互联网行业打拼多年的老码农…