首页 > 其他分享 >置换环

置换环

时间:2024-02-14 16:33:47浏览次数:10  
标签:结论 长为 方案 置换 个数 数在

结论

每次交换任意两个数,将一个排列排序。

结论 \(1\):其最小操作数为 \(n-k\)。

结论 \(2\):其操作方案数为 \((n-k)!\prod\limits_{i=1}^{k}\dfrac{l_i^{l_i-2}}{(l_i-1)!}\)。

其中 \(n\) 为长度,\(k\) 为置换环个数,\(l_i\) 为第 \(i\) 个置换环长度。

证明

引理:若交换的两个数在同一个置换环内,则环的个数加 \(1\);否则,环的个数减 \(1\)。

手玩一下不难证明。于是有:将一个长为 \(l\) 的置换环拆成 \(l\) 个自环的最小操作数是 \(l-1\) 次。

那么就可以得到结论 \(1\)。

重点是结论 \(2\)。由上可知,只要每次操作的两个数在当前的同一置换环内,就可以达到这个最小数。还是考虑单个环的情况,设 \(f_i\) 表示长为 \(i\) 的置换环操作方案数,那么枚举交换的两个数在环中的距离,得到递归式 \(f_i=\dfrac{i}{2}\sum\limits_{j=1}^{i-1}f_jf_{i-j}\binom{i-2}{j-1}\)。

不过这个式子没啥卵用,主要用于打表,我们考虑从意义上求解 \(f_i\)。

正难则反,拆环不好做我们变成合并环,从全是自环的局面开始,不断将两个点的所属集合合并,最终变成一个集合。

我们考虑一棵 \(n-1\) 条边的树,我们再任意钦定一个顺序,按这个顺序合并一定是合法的,即最终变成了一个大环,其方案数总数是 \(n^{n-2}(n-1)!\),而最终局面是一个长为 \(n\) 的环,有 \((n-1)!\) 种。显然,这 \((n-1)!\) 种环的 \(f\) 均相同,于是答案就是 \(n^{n-2}\) 种方案了。

对于多个环的排列,将第 \(i\) 个环的操作视作 类别 \(i\),答案即为将所有 \(l_i-1\) 个 \(i\) 全排列的方案数,易证结论 \(2\)。

标签:结论,长为,方案,置换,个数,数在
From: https://www.cnblogs.com/operator-/p/18015278

相关文章

  • 最少交换次数 置换环 LeetCode 2471. 逐层排序二叉树所需的最少操作数目
    voidMain(){ varroot=newTreeNode(1) { left=newTreeNode(3) { left=newTreeNode(7), right=newTreeNode(6) }, right=newTreeNode(2) { left=newTreeNode(5), right=newTreeNode(4) } }; varr=newSolution().Minimu......
  • 置换群
    定义一个集合,有运算(埋下伏笔),集合内的东西运算后还是在集合内。求的东西本质不同的方案数这个集合里元素很多,肯定不能枚举。可以理解成联通块数?(也许没什么**用)不同带权方案权值和不会。Bornside引理\[\frac{1}{\text{置换种数}}\times(\sum_{\text{每一种置换}}\text{仅考......
  • Maven配置换仓库出现错误1
    一:概述mvninstall后出现错误,寻找解决办法。二:具体过程<1>命令行使用mvninstall报错[INFO]Scanningforprojects...[INFO]------------------------------------------------------------------------[INFO]BUILDFAILURE[INFO]-----------------------------------------......
  • [排序,贪心,置换环]洛谷P1327&&P8637,双倍经验
    前置知识:置换环,最小交换次数https://blog.csdn.net/yunxiaoqinghe/article/details/113153795?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%9C%80%E5%B0%91%E4%BB%BB%E6%84%8F%E4%BA%A4%E6%8D%A2%E6%8E%92%E5%BA%8F%E8%AF%81%E6%98%8E%E7%94%A8%E7%BD%AE%E6%8D......
  • MIT18.06Linear Algebra 第05讲 转置、置换和空间
    转载于:超详细MIT线性代数公开课笔记......
  • 五、进程调度/页面置换/磁盘调度
    小林coding《图解系统:调度算法》笔记参考:geeksforgeeks: CPUSchedulinginOperatingSystemsuic:CPUScheduling 进程调度TIP我知道很多人会问,线程不是操作系统的调度单位吗?为什么这里参与调度的是进程?先提前说明,这里的进程指只有主线程的进程,所以调度主线程就等于调......
  • pycharm编辑器如何设置换行
    PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。pycharm设置自动换行,步骤如下:1)只......
  • AXI传输总结+页面置换算法+不定态判定+PATH管理
    AXI传输总结AXI这部分我没有深入解除过,只是多多少少摸一下看下数据路径有没有传过去,总感觉不到难点在哪里,不就是一个传输协议吗?这个是soc设计方法与实现中提供的附录,可供参考,但是有版本错误(AXI4不支持写的交织,没有WID)https://www.hxedu.com.cn/hxedu/w/inputVideo.do?qid=5a79......
  • 06-页面置换算法
    06-页面置换算法一、功能与目标功能:当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换目标:尽可能地减少页面的换进换出次数(即缺页中断的次数)。具体来书,把未来不再使用的活短期内较少使用的页面换出,荣昌只能在局部性原理指导下依据过去的统计数据来......
  • 【补题记录】 Codeforces Round 797 (Div. 3) F Shifting String(置换环)
    CodeforcesRound797(Div.3)FShiftingString思路:根据这个排列进行替换的操作可以往置换环考虑,就是对于每一段字串,它的变换都是有规律的,经过一定的操作之后都会回到原点,可以想象转化成图上问题。参考ygg的题解,直接用链表模拟这个转化的过程,然后暴力计数,因为要满足所有点都......