洛谷 P1923 题解

传送门:P1923 【深基9.例4】求第 k 小的数

更佳的阅读体验:洛谷 P1923 题解


简要题意:给定一个 $n$ 个元素的序列 $a$,最小的数是第 $0$ 小,求第 $k$ 小的数。

提供一个非正解的暴力做法。

我们直接对数组排序,然后输出 $a_k$ 即可。

由于本题数据规模较大($n \le 5 \times 10^6$),因此需要关闭流同步才能卡过去。

#include <iostream>
#include <algorithm>
using namespace std;

const int N = 5e6 + 10;
int n, k, a[N];

int main() {
    cin.tie(nullptr);  // 这两句用于关闭流同步,但关流后不可以混用 cin / scanf
    ios::sync_with_stdio(false);
    cin >> n >> k;
    for (int i = 0; i < n; ++i) cin >> a[i];
    sort(a + 1, a + n + 1);
    cout << a[k] << '\n';
    return 0;
}
最后修改:2025 年 08 月 13 日
如果觉得我的文章对你有用,请随意赞赏