首页 > 其他分享 >CF1768D 题解

CF1768D 题解

时间:2023-01-24 20:24:33浏览次数:62  
标签:满足要求 题解 CF1768D cdots swap 交换 operatorname size

\(\mathcal Solution\)

【题意】

我们可以交换任意两个数,求最小操作几次能让逆序对变成 \(1\)。

【分析】

如果逆序对为 \(1\) 的排列一定是:

  • \(2, 1,\cdots n\)
  • \(1, 3, 2,\cdots n\)
  • \(1, 2, 4, 3,\cdots n\)
  • \(\cdots\)

我们发现这些排列都是由 \(1, 2,\cdots n\) 进行一次交换得来的。

则我们先求出排列 \(p\) 变成 \(1, 2,\cdots n\) 的操作次数。

我们将需要交换的位置连一条边,即 \(\forall i(1\le i\le n)\) 连一条 \(i\to p_i\) 的边。

那么从 \(i\) 出发经过的点为 \(i\to p_i\to p_{p_i}\to\cdots\to i\)。

对于每个环,需要操作的次数即为 \(size-1\),\(size\) 表示环中的不同点数。

证明:

对于一个环 \(\{i, p_i, p_{p_i},\cdots \}\),我们记为 \(\{a_1, a_2,\cdots, a_{size}\}\)。

注意:\(a_{size}\neq i\)。

则我们 \(\operatorname{swap}(a_{size}, a_{size-1}), \operatorname{swap}(a_{size-1},a_{size-2}),\cdots,\operatorname{swap}(a_2, a_1)\),其中 \(\operatorname{swap}(a, b)\) 表示交换 \(a, b\)。这样操作次数是 \(size-1\)。

也就是说答案为 \(n-cnt\),\(cnt\) 表示环的数量。

那么我们考虑什么时候是能在变成 \(1, 2,\cdots, n\) 之前满足要求。

如果 \(i\) 和 \(i+1\) 是在一个环中,则可以在这之前满足要求。否则,就不能在之前满足要求。

代码

标签:满足要求,题解,CF1768D,cdots,swap,交换,operatorname,size
From: https://www.cnblogs.com/hcywoi/p/17066328.html

相关文章

  • ABC281E 题解
    \(\mathcalSolution\)本题的思路类似于对顶堆。用两个multiset来维护。\(S_1\)为第一个multiset;\(S_2\)为第二个multiset。\(S_1\)维护前\(K\)个值,\(S_2\)......
  • AT_abc277_e 题解
    \(\mathcalSolution\)【题意】给定无向图,当\(a_i=1\)时,该条边才能走。在给我们\(k\)个点,\(S_1,S_2,\cdots,S_k\),到了这些点可以选择是否取反\((1\to0,0\t......
  • 2023牛客寒假算法基础集训营1 个人题解(ACDHKL)
    A.WorldFinal?WorldCup!(I)题意:给10场比赛的点球输赢情况,奇数为A队点球,偶数为B队点球思路:用两个变量x,y来分别存A队当前赢的场次和B队当前赢的场次然后就就扫......
  • CodeForces-907#B 题解
    正文设数组\(c_{x,y,i,j}\)代表\((x,y)\)位置的大格子中\((i,j)\)位置的小格子。很显然,输入中字符的输入顺序是要调整的,实际的顺序是\(x,i,y,j\)。对于输入的\(......
  • 题解
    前言只对SubTask2的选手看过来!!!很好的一道模拟题。坑点分析题目里说的很明白了:只要有\(\ge1\)个带有注释的,就是一定是祖宗人,哪怕在后面或者前面出现过符合乐子人......
  • P3802 小魔女帕琪 题解【期望dp】
    题目传送门P3802解题思路本题的解题思路关键在于分段。每一个结构段的概率在之后的结构段依然适用。判断是否符合这种特性最好方法是随机截取一段观察是否成立发现成......
  • 洛谷P3654 First Step题解
    这是一道暴力枚举。 大致题意:R行C列的棋盘要放下长度为K的线段,“#”表示无法放置,问有多少种放置方法。直接贴代码:#include<bits/stdc++.h>usingnamespacestd;i......
  • P4022 [CTSC2012]熟悉的文章 题解
    题目链接简要题意给定\(m\)个模板串和\(n\)个匹配串,如果一个字符串是一个模板串的子串且长度不小于\(L\)则称其为“熟悉的”,对于每个匹配串,求一个最大的\(L\),满足......
  • 程序员经典问题解答
    帮助在学习、上班的过程中,你是否经常遇到疑难问题无法解决,为此备受折磨?别担心,小编精选多道程序员最头痛的技术问题予以回答。QA小伙伴程序大牛C语言 Q:如何引用一个已经定义......
  • Solution 题解 UVA1389 Hard Life: 最小割,有向图,分数规划,和牛顿迭代
    题解UVA1389HardLife:最小割,有向图,分数规划,和牛顿迭代Preface黑题好耶看到了题解里面大多数是二分,我就来讲一讲简单又快速的DinkelbachAlgorithm吧!0-1分数规划......