| 题目名称 | 4370. 冒泡排序 |
|---|---|
| 输入输出 | bubble.in/out |
| 难度等级 | ★★★☆ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 20 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 查看题解 | 分享题解 |
| 通过:1, 提交:4, 通过率:25% | ||||
|
|
100 | 3.200 s | 34.21 MiB | C++ |
|
|
0 | 1.035 s | 34.19 MiB | C++ |
|
|
0 | 3.036 s | 34.23 MiB | C++ |
|
|
0 | 5.662 s | 3.58 MiB | C++ |
| 本题关联比赛 | |||
| 2026.4.4 | |||
| 关于 冒泡排序 的近10条评论(全部评论) |
|---|
冒泡。
根据冒泡排序,将一个排列仅通过交换相邻两项使排列有序的操作数等于逆序对数。
直观上来说,将一个排列仅通过交换相邻两项使排列有序的理论操作次数最少是 $\frac{\sum |p_i-i|}{2}$。
求多少个 $0\sim n-1$ 的排列(下标从 $0$ 开始),满足逆序对数等于理论操作次数最小值。
但是这个问题有点简单的,你求的排列数量还需要满足第 $a$ 个位置为 $b$。
求答案对 $666623333$ 取模的结果。提示:$666623333$ 是质数。
本题每个测试点有多组测试数据。
第一行一个正整数 $T$,表示测试数据组数。
接下来 $T$ 行,对于每组数据,一行三个正整数表示 $n,a,b$。
$T$ 行,每行一个正整数作为答案。
1 3 0 2
1
1 100 58 70
99824695
对于 $20\%$ 的数据,满足 $n\le 100$。
对于 $40\%$ 的数据,满足 $1\le n\le 1000$。
对于 $60\%$ 的数据,满足 $1\le n\le 10^4$。
对于 $80\%$ 的数据,满足 $1\le n\le 10^5$。
对于 $100\%$ 的数据,满足 $n\le 10^6,0\le a,b\le n-1$。
共二十个测试点,每部分数据 $4$ 个测试点的 $T$ 分别是 $1,100,10^4,10^6$。
常3.14