Luogu6186 [NOI Online #1 提高组] 冒泡排序 发表于 2025-02-25 更新于 2025-02-26 分类于 算法竞赛 , 题 , 洛谷 阅读次数: 题意:给定一个 的排列 ,接下来有 次操作,操作共两种: 交换操作:给定 ,将当前排列中的第 个数与第 个数交换位置。 询问操作:给定 ,请你求出当前排列经过 轮冒泡排序后的逆序对个数。 ,时限 。 设 表示 前面比 大的数的个数,显然,逆序对总数即为 。 手玩冒泡排序可以发现,每一轮排序中,各个 恰好减少 。 证明:若 之前已经有序 ,则显然 处没有交换。 反之,最大值会上浮, 处必有一次交换,则 。 最终的答案即为: 用树状数组维护值与个数即可。注意特判 的情况。 当交换两个数时,会触发 次单点修改。 复杂度 。