| 比赛场次 | 757 |
|---|---|
| 比赛名称 | 2026.8.26 |
| 比赛状态 | 已结束比赛成绩 |
| 开始时间 | 2026-08-26 08:30:00 |
| 结束时间 | 2026-08-26 13:00:00 |
| 开放分组 | 全部用户 |
| 组织者 | RpUtl |
| 注释介绍 | 偏思维,CSP-S 难度 |
| 题目名称 | sort |
|---|---|
| 输入输出 | sorttros.in/out |
| 时间限制 | 400 ms (0.4 s) |
| 内存限制 | 512 MiB |
| 测试点数 | 25 简单对比 |
传闻有一种神奇的排序算法:奇迹排序。
只需要把待排序的数组放在那里,等待一束宇宙射线射向数组,使数组自动排好序。
可惜的是,这个算法的时间复杂度太大了,所以还是来研究冒泡排序吧。
给定一个 $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$。
一行,一个正整数,表示答案。
3 2 3 1
3
5 1 4 2 3 5
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$ | 无 |
在此键入。