光之大陆
光之大陆
题意翻译
给定
思路
考虑本题的两个过程:
- 首先求解将
个点分成 个部分的方案数,这可以用DP
解决。令 表示将前 个点分成 个部分的方案数。转移,考虑有 个点和 号点在一个集合,则可以从 转移(当然需要保证至少有 个集合,所以 为 ),考虑从 个点中任选 个与 一组,然后再考虑这一组的排列方式,发现是一个圆排列,方案数为 ,表示排列后方向(顺时针逆时针 )、旋转同构(最小表示法的一定的若干个排列 ),但要考虑连出去的点是什么, ,注意一个点只有一种方案,且两个点无法构成环,没有方案(因为这样会导致重边)。转移为 ,可以预处理组合数和圆排列,预处理时特殊处理 的情况。 - 确定分成几个部分后,考虑几个环构成一颗生成树的方案数。设有
个环(与题目中的 无关)可以转换成有 个位置的prufer
序列。发现由于是环,所以环与环之间连环上的哪些点的边是无所谓的,共 。
结果就是
复杂度
code
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/17587761.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步