首页 > 其他分享 >P4778 Counting Swaps

P4778 Counting Swaps

时间:2024-10-01 10:22:55浏览次数:7  
标签:方案 Swaps cdot dfrac P4778 数为 自环 大小 Counting

题意:给定一个 \(1\sim n\) 的排列 \(a\)。每次可以选两个位置 \(i,j\),耗费 \(1\) 的代价交换 \(a_i,a_j\)。问使得 \(a\) 升序排列的最小代价是多少,以及方案数。\(1\le n\le 10^5\)。

求最小代价:连边 \(i\rightarrow a_i\),得到若干个环。一个大小为 \(x\) 的环需要 \(x-1\) 次操作消除。答案就是每个环的大小 \(-1\) 之和。

这个结论会用到一个引理:\(k\) 大小的环至少 \(k-1\) 次操作变成 \(k\) 个自环。这可以用数学归纳法证明。

然后是方案数。令 \(f_i\) 表示大小为 \(i\) 的环变成 \(i\) 个自环的方案数。初值 \(f_1=0\)。

一次操作可以把 \(i\) 大小的环拆成两个大小为 \(x,y\) 的环,要求 \(x+y=i\)。然后考虑有多少种方法拆出 \(x,y\) 两个环。注意到如果 \(x=y\),方案数为 \(i/2\);否则方案数为 \(i\)。记 \(T(x,y)=(\dfrac{1}{2})^{[x=y]}\cdot i\)。最后,两个环各自变成自环的操作可以随意排列。

于是有 $$f_i=\sum_{x+y=i}f_x\cdot f_y\cdot T(x,y)\cdot \dfrac{i-2}{(x-1)!(y-1)!}$$

先求出 \(f[]\)。假设图中有环,长度为 \(L_1,L_2,\dots,L_k\)。则总方案数为: $$ans=(\prod_{i=1}^k f[L_i])\cdot (\dfrac{(n-k)!}{\prod_{i=1}^{k}(L_i-1)!})$$

求 \(ans\) 在预处理 \(f\) 后,用快速幂等方法可以做到接近线性。而复杂度瓶颈在于求 \(f\)。复杂度为 \(O(n^2\log n)\)。

以上是本题一半的解法,也是比较合理的思路。如果使用分治 FFT 等黑科技优化,可能可以通过本题。但是这里有一个更优美的做法。

然后是一个毫无理由的观察:\(f[n]=n^{n-2}\)。下面给出这个结论的组合意义证明。

证明:咕咕

标签:方案,Swaps,cdot,dfrac,P4778,数为,自环,大小,Counting
From: https://www.cnblogs.com/FLY-lai/p/18442674

相关文章

  • BFA507 Accounting and Accountability for Decision
    BFA507AccountingandAccountabilityforDecisionMaking-Sem2,2024AssessmentTask2:OralpresentationDue: Week10-Friday,4thOctober2024at5.00pmILOsAddressed: ILO1,ILO2Maximumlength/format: 5-minutevideopresentationincluding:Powerpo......
  • Building Accounting Information System using MS Access
    DatabaseAssignment(Fall2024)BuildingAccountingInformationSystemusingMSAccess(100marks)allaccounts’beginningbalancesarezeroSPELimitedsellsdifferentkindsofsmartphonesthatitpurchasesfromdifferentmanufacturers.Itscustomer......
  • PAT甲级-1115 Counting Nodes in a Binary Search Tree
    题目 题目大意给定节点个数,以及每个节点的值,要求构造一棵二叉排序(搜索)树,并按照规定格式输出最后一层和倒数第二层的节点个数。思路二叉排序树的构造方法是递归,但思路类似于二分查找。逐个将n个节点插入到二叉排序树中,插入完成也就构造完成了。插入节点时,如果该节点值大于......
  • 110.109 Introductory Financial Accounting
    110.109Introductory FinancialAccountingAssessment3 BookletDistanceandInternalSemester2– 2024IMPORTANT INFORMATIONThis is an electronic assessment and must be completed in the “Assessment 3 Answer Workbook” – Excel temp......
  • TSTA602– Quantitative Methods for Accounting
    TSTA602–QuantitativeMethodsforAccounting&Finance(worth20%)CaseStudy,AnIndividualAssignment,Due:22September2024by11:59pmStructureoftheassignment:Yourreportmustincludethefollowingsections,respectively:1)ExecutiveSumm......
  • AGC005D ~K Perm Counting 题解
    [AGC005D]~KPermCounting题解如果一个排列\(P\)满足对于所有的\(i\)都有\(|P_i-i|\neqk\),则称排列\(P\)为合法的。现给出\(n\)和\(k\),求有多少种合法的排列。由于答案很大,请输出答案对\(924844033\)取模的结果。\(2\leqn\leq2\times10^3\),\(1\leqk\leqn......
  • 【洛谷 P1596】[USACO10OCT] Lake Counting S 题解(深度优先搜索)
    [USACO10OCT]LakeCountingS题面翻译由于近期的降雨,雨水汇集在农民约翰的田地不同的地方。我们用一个的网格图表示。每个网格中有水(W)或是旱地(.)。一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑。约翰想弄清楚他的田地已经形成了多少水坑。给出约翰田地的示意图,......
  • ACCT20077 – ACCOUNTING FOR MANAGEMENT DECISION
    PracticequestionsforFinalAssessmentACCT20077–ACCOUNTINGFORMANAGEMENTDECISIONMAKINGPARTA–DISCUSSIONQUESTION(25MARKS)Youarethemanagerofadepartmentinalargeorganization.Yourcompany’sprimarybusinessistomanufactureschooldes......
  • 计数排序 (Counting Sort)
    (1)算法简介    计数排序是一种非比较排序算法,主要用于对整数进行排序。它通过计算每个元素在数组中出现的次数来确定其在排序后数组中的位置。这种排序算法适用于元素范围较小且数据量较大的场景。同样,我们接下来带着你边学如何实现排序算法边理解该算法的内核。   ......
  • ACCT3003: Accounting Modelling and Data
    ACCT3003:AccountingModellingandDataVisualisationFolioAssignmentGuide,Semester2, 2024Due Date for Submission: Sunday 15/9/2024 at 5.00 PMPleasenotethatthePractical AssignmentforACCT3003AccountingModellingandDataVisualisationis......