题目名称 4454. sort
输入输出 sorttros.in/out
难度等级 ★★★
时间限制 300 ms (0.3 s)
内存限制 512 MiB
测试数据 25
题目来源 左清源 于2026-08-24加入修改该题
开放分组 全部用户
提交状态
分类标签
查看题解 分享题解
通过:14, 提交:39, 通过率:35.9%
左清源 100 0.927 s 6.72 MiB C++
续余庆 100 0.958 s 4.69 MiB C++
温翔森 100 0.972 s 4.72 MiB C++
郑霁桓 100 0.973 s 5.72 MiB C++
张晨曦 100 0.985 s 5.69 MiB C++
史曜铭 100 0.985 s 5.70 MiB C++
黄笑凡 100 0.992 s 5.74 MiB C++
毛昱喆 100 1.006 s 5.72 MiB C++
彭欣越 100 1.009 s 5.72 MiB C++
茹逸 100 1.022 s 10.76 MiB C++
本题关联比赛
2026.8.26
关于 sort 的近10条评论(全部评论)
原题 https://www.luogu.com.cn/problem/P16996
RpUtl
2026-08-26 17:18 1楼

4454. sort

★★★   输入文件:sorttros.in   输出文件:sorttros.out   简单对比
时间限制:0.3 s   内存限制:512 MiB

【题目背景】

传闻有一种神奇的排序算法:奇迹排序。

只需要把待排序的数组放在那里,等待一束宇宙射线射向数组,使数组自动排好序。

可惜的是,这个算法的时间复杂度太大了,所以还是来研究冒泡排序吧。

【题目描述】

给定一个 $1\sim n$ 的排列,下标从 $1$ 开始,现在又一段对 $a$ 进行冒泡排序的伪代码。

01: Algorithm BubbleSort(a, n)
02:    for i ← 1 to n do
03:       for j ← 1 to n - i do
04:          if a[j] > a[j + 1] then
05:             Swap(a[j], a[j + 1])
06:          end if
07:       end for
08:    end for
09: end Algorithm

由于宇宙射线的影响,导致第 4 行的 if 语句在执行时,恰好有一次其的执行结果相反(即执行相反的分支)。

现在给出 $n,a$,求出在宇宙射线影响下,运行 BubbleSort(a,n) 后,本质不同的 $a$ 的个数(称两个排列 $p,q$ 本质不同,当且仅当存在 $ i\in [1,n],p_i\ne q_i$)。

【输入格式】

第一行,一个正整数 $n$。

第二行,$n$ 个用空格隔开的正整数,表示排列 $a$。

【输出格式】

一行,一个正整数,表示答案。

【样例输入1】

3
2 3 1

【样例输出1】

3

【样例输入2】

5
1 4 2 3 5

【样例输出2】

5

【样例说明】

对于第一个样例,可能的 $a$ 有:$[1,3,2],[2,3,1],[2,1,3]$。

大样例。

【数据规模与约定】

测试点编号 $n\le$ 特殊性质
$1\sim 2$ $10$ 无
$3\sim 4$ $100$ 无
$5\sim 8$ $400$ 无
$9\sim 13$ $4000$ 有
$14\sim 15$ $10^5$ 有
$16\sim 18$ $2\times10^5$ 无
$19\sim 21$ $5\times10^5$ 无
$22\sim 25$ $2\times10^6$ 无

特殊性质:满足 $a_i=n-i+1$。

【来源】

在此键入。