为什么两个TLE

P1923 【深基9.例4】求第 k 小的数

g0_Og @ 2024-01-06 21:05:56

#include<bits/stdc++.h>
using namespace std;
int a[5000001];
int main()
{
    int n,m;
    cin >>n>>m;
    for(int i=0;i<n;i++) cin >>a[i];
    nth_element(a,a+m,a+n);
    cout <<a[m];
}

by HxYfTA @ 2024-01-06 21:17:20

@g0_Og

“请尽量不要使用 nth_element 来写本题,因为本题的重点在于练习分治算法。”

虽然这题我没做,但是你显然没有按题目要求做


by g0_Og @ 2024-01-06 21:19:18

@HxYfTA 有神奇函数我不用,我要干啥


by hexuchen @ 2024-01-06 21:26:56

@g0_Og

#include<bits/stdc++.h>
using namespace std;
int a[5000001];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++) scanf("%d",&a[i]);
    nth_element(a,a+m,a+n);
    printf("%d",a[m]);
}

by g0_Og @ 2024-01-06 21:28:44

@hexuchen 谢谢,已过


|