CF351B Jeff and Furik 题解
summarization
有一个长为 的排列 , 现有甲乙两人轮流执行操作,甲是先手:
- 甲每次可以交换 中相邻的两个数
- 乙每次等概率执行下面两种操作的一种:
- 选择一对 ,且 ,将其交换
- 选择一对 ,且 ,将其交换
甲希望操作数尽可能小,求使排列升序的期望操作数。
solution
甲每次可以使序列中的逆序对减 1,乙每次有 的概率使逆序对减 1, 的概率使逆序对加 1。
根据期望的可加性,当甲乙都操作过一遍时,有 的概率使逆序对减 2, 的概率逆序对不变。
所以,每操作两遍,逆序对期望减少 1,所以期望操作数就是逆序对数乘 2。
但是,要注意一下细节,如果逆序对数是奇数的话,那么最后一次甲操作完后序列已经升序,所以操作数要减 1。
code
就算个逆序对,不贴了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探