首页 > 其他分享 >P6186 [NOI Online #1 提高组] 冒泡排序

P6186 [NOI Online #1 提高组] 冒泡排序

时间:2022-11-25 08:33:36浏览次数:55  
标签:P6186 NOI 后退 冒泡排序 数量 对块 逆序

随便给出一组数据:

5 3 1 2 4

初始逆序对数量: \(6\)。


冒泡排序

一轮:3 1 2 4 5 \(6-4=2\)。
两轮:1 2 3 4 5 \(2-2=0\)。


观察会发现,数 \(x\) 会一直后退,直到有一个大于 \(x\) 的数 \(y\),\(y\) 也会一直后退……

逆序对的数量就是所有后退数 \(x\) 后退的长度之和。

由于一直后退,直到遇到一个更大的后退数,所以长度之和就是 \(n - cnt(x)\) 。


那么问题来了,如何统计后退数数量呢?

一个直观的想法是,后退数将区间划分成了一个个逆序对块

上图是序列中数的大小的柱状图,其中,不同颜色分别代表了不同逆序对块(黑色的不是)。

我们要做的,就是统计逆序对块的数量,或者说,是每个逆序对块中最大的数的数量。

题解中都是观察到了最大的数 \(a[x]\) 是 \(max(a[i]), i \in [1, x]\)这个特点,然后用在值域上建立树状数组统计每个数前面有多少个数比自己大,记为 \(f[x]\)。


第一轮冒泡,后退数是 \(f[x] = 0\) 的数。

排序完之后,所有逆序对块中的、除了第一个的数的 \(f[y]\) 都要减一,这是因为 交换是只发生在逆序对块中的

第二轮冒泡,后退数是 \(f[x] = 0或1\) 的数,其实我们可以

标签:P6186,NOI,后退,冒泡排序,数量,对块,逆序
From: https://www.cnblogs.com/zhangchenxin/p/16924076.html

相关文章

  • 2022NOIP A层联测34 bs 串 英语作文 计算器 愤怒的小鸟
    T1[图论:并查集维护寻找特殊环]给出一个无向图,点权是0或者1,你可以从任意起点出发,每到达一个点,把这个点的权值放到你构造的字符串的末尾,并且这个点的权值取反。给出K次操作,......
  • Public NOIP Round #4(Div. 1) 题解
    T1:容易发现每种药品之间互不影响,对每种药品分别计算,对于它所涉及到的区间开个vector存下来,离散化之后差分,然后前缀和,数出只有它一个线段覆盖的段即可。时间复杂度\(\m......
  • 【NOIP模拟赛】路径 题解
    前言今天浅试了一下vscode的typora插件和cnblog插件,这篇文章是typora插件编写,cnblog插件发布的Problem题目描述给定一颗\(n\)个节点的树。\(q\)次询问,每次询问给定......
  • 【NOIP模拟赛】制胡窜 题解
    今天浅试了一下vscode的typora插件和cnblog插件,这篇文章是typora插件编写,cnblog插件发布的Problem题目描述给你两个字符串\(S\)和\(T\),有\(q\)次询问,每次询问给定......
  • NOIP 2022 游记
    前言广告位招租背景/Day-INF高一,第一场正式的NOIp(初中生不给算),仔细一想也是倒数第二场(惊恐)。几周前的CSP考了220分,几乎是本校(停课选手中)最低的。应该说有偶然成分,但是......
  • 2022NOIPA层联测34
    A.bs串只知道去找环然后挨个判断……正解是把不同色的边连上,枚举哪两个同色的边两端已经联通。二分+并查集。code#include<bits/stdc++.h>usingnamespacestd;......
  • NOIP2022 游记
    NOIP2022游记Hello,hello,helloworld.Iopenmyeyesandsaidhellototheworld.——《HelloWorld》Day-2被hh的神秘模拟赛打自闭了。2hard4me.希望......
  • 洛谷P2141 [NOIP2014 普及组] 珠心算测验
    [NOIP2014普及组]珠心算测验题目描述珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而......
  • luogu P8500 [NOI2022] 冒泡排序
    题面传送门这个部分分提示得太妙了。首先这个冒泡排序的壳已经被套烂了,就是对逆序对计数。首先观察一下,发现第一个样例解释中在等于某个限制对应的最小值的时候取到逆序......
  • 洛谷P1047 [NOIP2005 普及组] 校门外的树
    [NOIP2005普及组]校门外的树题目描述某校大门外长度为l的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置......