标签:scanf algo include 快排 ++ 输出 ref com 格式
因为我太菜了,所以这次写个黄题的题解…
luogu传送门:看我点我QWQ.
下面是题目搬运
输入 n(n<5000000且n为奇数) 个数字 a_i(0<a_i<10^9),输出这些数字的第 k 小的数。最小的数是第0小。
无
无
5 1
4 3 2 1 5
2
(我严重怀疑这是道红题)
将输入的数列进行排序,然后输出第 k 小的数不就完了吗?
(对呀,的确完了…)
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
scanf("%d%d",&n,&m);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
printf("%d",a[m]);
return 0;
}
结果是3AC,2TLE(我当时心态崩了QWQ)
没错,再看一下题目
数组太大了,导致快排也超时。
这个时候需要用到另一个函数:
nth_element(a,a+m,a+n);
这个函数的意思是:
这个函数在这个头文件里:
#include<algorithm>//和sort在一个头文件中
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
scanf("%d%d",&n,&m);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
nth_element(a,a+m,a+n);
printf("%d",a[m]);
return 0;
}
标签:scanf algo include 快排 ++ 输出 ref com 格式
原文地址:https://www.cnblogs.com/Kyriech-Francis/p/12938025.html