P10219 [省选联考 2024] 虫洞 题解

news/2025/2/10 22:19:27/文章来源:https://www.cnblogs.com/lupengheyyds/p/18708879

P10219 [省选联考 2024] 虫洞 题解

前三个条件说明对于每种编号构成的子图都是形如若干个环,于是这启发我们对于每种颜色分别处理。考虑现在已经处理了编号为 \(1\sim i-1\) 的边,考虑加入编号为 \(i\) 的边,看什么条件下会合法。

不难发现合法的添加有两种:

  • 在一个连通块 \(G=(V,E)\) 中加边。加边方式形如一个循环移位(即一个大环)。并且可以发现当一个点的连边被确定后,整个连通块的加边方案就确定了。所以方案数为 \(|V|\)

  • 在从连通块 \(G_1=(V_1,E_1)\) 向连通块 \(G_2=(V_2,E_2)\) 连边。为了满足第四个条件,这两个连通块应该是同构的(同构是指可以对两个联通块中的点进行重标号使得这两个连通块相同,显然一个必要条件为 \(|V_1|=|V_2|\land |E_1|=|E_2|\))。同理,方案数为 \(|V_1|\)

由此我们可以发现两个性质:

  • 对于任意连通块,它是强连通的。

  • 如果两个连通块一开始不同构,那么以后他们不可能在同构。

所以在一开始可以将同构的连通块放在一起单独处理。发现转移的代价仅与连通块点数有关,这启示我们忽略其连通块具体构造而仅记录其点数进行处理。

\(f_{i,j}\) 表示将 \(i\) 个有 \(j\) 个点的连通块添加 \(K\) 种边的方案数。假设我们将同构的联通块放在一起形成若干组 \((G,|V|,cnt)\),则答案为 \(\prod f_{cnt,|V|}\)


现在考虑如何求 \(f\)

由于 \(f\) 的图中个连通块最后不一定合并成一个连通块,用一般图计数的思路,枚举第 \(n\) 个点在的连通块,化为处理连通图计数问题。

\(dp_{k,i,j}\) 表示添加了 \(k\) 种边,有 \(i\) 个含 \(j\) 个点的连通块,并最终合并成一个连通块的方案数,枚举第 \(i\) 个连通块所在的那个连通块,有转移:

\[f_{i,j}=\sum_{k=1}^idp_{K,k,j}f_{i-k,j}{i-1\choose k-1} \]


现在考虑如何求 \(dp_{}\)

枚举合并为几个连通块,有转移 \(dp_{k,i,j}=\sum_{x|i}dp_{k-1,x,\frac {ij}x}g_{i,x}res\)

其中 \(g_{i,j}\) 表示将 \(i\) 个点分为 \(j\) 个圆排列的方案数。考虑每次选出 \(\frac ij\) 个点进行圆排列的过程,方案数为 \(\frac{i!}{\frac ij(i-\frac ij)!}\times \frac{(i-\frac ij)!}{\frac ij(i-2\frac ij)}\times \cdots=\frac{i!}{(\frac ij)^j}\) 由于圆排列之间是无序的,再除以 \(j!\) 最终方案数为 \(\frac{i!}{j!(\frac ij)^j}\)

\(res\) 表示一次连边合并为 \(x\) 块,且两两同构的方案数。对于第 \(1\) 块里面的 \(\frac jx\) 可以随便连边,即 \(j^{\frac ix}\) 种,对于剩下的 \(x-1\) 块,前 \(\frac ix-1\) 可以随便连,最后一个必定可以使得整个图同构(画图可以理解),即 \(j^{(\frac ix-1)(x-1)}\) 种。两者乘起来为 \(j^{i-x+1}\) 种。

于是:

\[dp_{k,i,j}=\sum_{x|i}dp_{k-1,x,\frac {ij}x}\frac{i!}{x!(\frac ix)^x}j^{i-x+1} \]

\(h_{k,i,j}=\frac{dp_{k,i,j}}{j^{i}}\),整理可得 \(h_{k,i,j}=j\sum_{x|i}h_{k-1,x,j\times \frac {i}x}\frac{i!}{x!(\frac ix)^x}\),发现这次转移 \(h_{k,i,j}\) 相比 \(h_{k,i,1}\) 仅是多乘了一个 \(j\) ,而其第三维所有可以到的状态也是 \(\frac ix\)\(j\times \frac ix\) 即乘了一个 \(j\) 的区别,于是可以发现性质:\(h_{k,i,j}=j^{k-1}h_{k,i,1}\),进一步可得:

\[dp_{k,i,j}=j^{k+i-1}dp_{k,i,1} \]


\(q_{i,j}=dp_{i,j,1}\),则有:

\[q_{i,j}=\sum_{x|j}q_{i-1,x}\frac{j!}{x!(\frac jx)^x}(\frac jx)^{i+x-2}=\sum_{x|j}q_{i-1,x}\frac{(j-1)!}{(x-1)!}(\frac jx)^{i-1} \]

\(p_{i,j}=\frac{q_{i,j}}{(j-1)!j^{i-1}}\),则有:

\[p_{i,j}=\sum_{x|j}\frac{p_{i-1,x}}{x} \]

????????将 \(p_{i,j}\) 设作\(\frac{q_{i,j}}{(j-1)!j^{i}}\),列出方程\(p_{i,j}=\frac 1j\sum_{x|j}p_{i-1,x}\) 能否卷积?可以,但卷积式子竟然不变

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACM寒假集训第四期

ACM寒假集训第四期 有理数取余 思路 bx=a mod m x=((a mod m) * ( b^(-1) ) mod m)) mod m; 问题就转化为如何求解 b 的逆元 b x = 1 mod m ,b对m的逆元,当 gcd(b,m)=1 时才存在。存在 bx+my=1 通过辗转相除法可以得到b,m的最大公约数然后根据最后得到的一系列等式合并为 bx+m…

昆明理工大学2025年硕士研究生调剂汇总表(2月10日更新)

这是今年昆明理工大学调剂信息,目前只更新了部分学院的部分专业,后续会持续更新。 【腾讯文档】昆明理工大学2025年硕士研究生调剂汇总表 https://docs.qq.com/sheet/DZERIbnpPb3JjeHFO

推荐一款人人可用的开源 BI 工具,更符合国人使用习惯的数据可视化分析工具,数据大屏开发神器!

前言 今天大姚给大家推荐一款人人可用的开源、免费的 BI 工具,更符合国人使用习惯的数据可视化分析工具,数据大屏开发神器,Tableau、帆软的开源替代:DataEase。工具介绍 DataEase是一个开源的数据可视化分析工具,可以帮助用户快速分析数据并洞察业务趋势,从而实现业务的改…

清华大学推出的 DeepSeek 从入门到精通(104页)免费教程!

前言 最近 DeepSeek 的出现让 AI 在国内掀起了一股浪潮,各大媒体、平台都在讨论和推广 DeepSeek,帮助各行各样使用 AI 不再有困难。今天大姚给大家分享一个由清华大学推出的、免费的:DeepSeek从入门到精通实用教程,该教材有着足足的104页能够快速的帮助大家了解和使用DeepS…

卞俊良

卞俊良 你猜 你猜我猜不猜

P1314 [NOIP 2011 提高组] 聪明的质监员(前缀和)

这道题最核心就是二分W,然后对于每一个W都构建一个前缀和数组,但要注意ans不能开太小,我开INT_MAX都不行,其次就是二分左右端点的变化,如果s-y>0说明满足要求的点多了,这时候我们要提高标准,就是让W增大,及让beign=W+1,反之让end=W-1;如果s=y,此时ans=0;这时候我…

读读源码-ArrayList究竟是怎么实现增强for循环的?

以我的认知来说,java中的ArrayList实现List,List又是继承Collection,往后就不太清楚了。 今天看源码的时候发现Collection继承了Iterable,Iterable接口的作用是允许对象称为for-each loop语句的目标。 因此如果想了解ArrayList如何实现循环,我们必须先从Iterable看起 1.集…

“此电脑”不是“我的电脑”怎么办

在以前,我们可以按住win+E就可以打开到有盘符的界面(直接看见C盘,D盘,E盘……),现在win11没有这个效果了,我还得再在左边的选项里寻找“此电脑”再进入我想要的“我的电脑”界面,真麻烦!无缘无故多了几个点击步骤,效率真低! 今天,我想改变这个效果!自已自足!。。…

香港海底光缆-转载2020

转自:http://live.xiaohongshu.com.sdwan.ltd/index.php?m=home&c=View&a=index&aid=132香港作为全球重要数据传输驿站之一,其网络传输能力自然不可小瞧。根据香港政府通讯事务管理局办公室给出的资料,截至2019年1月,香港有十一个海缆系统,即亚非欧1号光缆系…

miniconda安装和配置

第一步,下载和安装访问Download Anaconda Distribution | Anaconda,跳过注册"Skip registration",进入下载界面往下拉,选择miniconda的下载。安装时候注意勾选PATH路径的配置选项。第二步,安装完成后通过Anaconda Prompt打开命令行,看到提示符前面有(base)字…