COJ978 WZJ的資料結構(負二十二)

來源:互聯網
上載者:User

標籤:

 

試題描述
輸入兩個正整數N、K,以及N個整數Ai,求第K小數。
輸入
第一行為兩個正整數N、K。
第二行為N個正整數Ai。
輸出
輸出第K小數。
輸入樣本
5 4
1 2 3 3 5
輸出樣本
3
其他說明
1<=K<=N<=200000
-10^9<=Ai<=10^9
 

學了一個好用的STL,nth_element(begin,k,end)

如在A[i]--A[n]中尋找k小,則先nth_element(A+1,A+k,A+n+1),再輸出A[k]即可,時間複雜度為O(N)。

#include<cstdio>#include<cctype>#include<queue>#include<cstring>#include<algorithm>#define rep(s,t) for(int i=s;i<=t;i++)#define ren for(int i=first[x];i!=-1;i=next[i])using namespace std;inline int read() {    int x=0,f=1;char c=getchar();    for(;!isdigit(c);c=getchar()) if(c==‘-‘) f=-1;    for(;isdigit(c);c=getchar()) x=x*10+c-‘0‘;    return x*f;}const int maxn=2000010;int A[maxn];int main() {    int n=read(),k=read();    rep(1,n) A[i]=read();    nth_element(A+1,A+k,A+n+1);    printf("%d\n",A[k]);    return 0;}
View Code

 

COJ978 WZJ的資料結構(負二十二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.