ACM第K個數 C 實現

2021-08-26 10:16:03 字數 851 閱讀 7919

第k個數

description

給你乙個整數序列和若干個問題,問題是這個序列的第i個元素到第j個元素的片斷中的第k大數是什麼?比如說給你的序列為(1, 5, 2, 6, 3, 7, 4),問題是(2,5,3),則從第2個元素到第5個元素為(5,2,6,3),排序以後是(2,3,5,6),則第三個數是5。

輸入:第一行為兩個整數n,m(1 <= n <= 100 000, 1 <= m <= 5 000),表示序列的元素個數和問題的個數,第二行為n個正整數的序列,每個整數為乙個32位整數,兩個數之間有乙個空格隔開。以後m行為問題,每個問題由三個整數表示i,j,k,第i個元素到第j個元素的片斷中的第k大數是什麼?(元素序號從1開始計數,i<=j,1<=k<=j-i+1)

輸出:每行輸出對應問題的結果。

sample input

7 31 5 2 6 3 7 4

2 5 3

4 4 1

1 7 3

sample output 56

3 #include

using namespace std;

typedef struct nodes;

nodes node[1000];

void quick_sort(int low,int high)

node[i]=key;

quick_sort(low,i-1);

quick_sort(i+1,high);}}

int main()

quick_sort(0,n-1);

while(cases--)

{int a,b,c,sum=0;

cin>>a>>b>>c;

for(i=0;i

第K個數 快速排序

題目描述 description 給定乙個長度為n 0輸入描述 input description 第一行為2個數n,k 含義如上題 第二行為n個數,表示這個序列 輸出描述 output description 如果m為質數則 第一行為 yes 沒有引號 第二行為這個數m 否則 第一行為 no 第二...

快速選擇第k個數

給定乙個長度為n的整數數列,以及乙個整數k,請用快速選擇演算法求出數列從小到大排序後的第k個數。輸入格式 第一行包含兩個整數 n 和 k。第二行包含 n 個整數 所有整數均在1 109範圍內 表示整數數列。輸出格式 輸出乙個整數,表示數列的第k小數。資料範圍 1 n 100000,1 k n 輸入樣...

AcWing 786 第k個數(C 演算法)

輸入格式 第一行包含兩個整數 n 和 k。第二行包含 n 個整數 所有整數均在1 109範圍內 表示整數數列。輸出格式 輸出乙個整數,表示數列的第k小數。資料範圍 1 n 100000,1 k n 輸入樣例 5 32 4 1 5 3 輸出樣例 32 基本思想 用快速選擇演算法。當分界點x左邊 有sl...