最小值 ACM 資料結構的使用

2021-08-09 23:24:34 字數 891 閱讀 3486

題目描述:輸入n

個數,m

次查詢。

每次查詢給出乙個數x。

要求:每次查詢輸出前

x個數中第

i小的數。(i為第

i次查詢)

你可以假設

m  <= n

,xi <= xi+1 <= xi+2 <= ……. <= xm (xm <= n).

輸入line0:t

line1: n,m

line2…linen+1:num1,......,numn

linen+2…linen+2+m:x1,……,xm

n < 30000, num < 2000000000

在編碼過程中我的思路:

不得不說我把這道題給想複雜了,以為會非常的難,但其實認真思考,形成思路,實現起來也就不會很難。

使用c++程式設計的好處:它有很多可以現成呼叫的函式,比如sort函式,還可以控制排序的範圍,比如對於a陣列,我只要對前n個數進行排序,則就可以這樣進行呼叫:

sort(a,a+n,cmp) cmp用來指定是公升序還是降序。如果要公升序,則return ab

我的**:    

#include using namespace std;

int n,m;//輸入的數字個數,進行的查詢次數

int t;//測試次數

int a[30010],b[50];

int cmp(int l,int h){

return l>t;

while(t--){

cin>>n>>m;

for(i=0;i>a[i];

for(i=0;i>b[i];

for(j=1;j<=m;j++){

sort(a,a+b[j-1],cmp);

cout<

ACM練習 最大最小值

時間限制 1000 ms 記憶體限制 65535 kb 描述 給出n個整數,執行m次詢問。對於每次詢問,首先輸入三個整數c l r 如果c等於1,輸出第l個數到第r個數之間的最小值 如果c等於2,輸出第l個數到第r個數之間的最大值 如果c等於3,輸出第l個數到第r個數之間的最小值與最大值的和。包括第...

資料結構之堆排序(最小堆)輸出最小值操作

輸入乙個長度為n的整數數列,從小到大輸出前m小的數。輸入格式 第一行包含整數n和m。第二行包含n個整數,表示整數數列。輸出格式 共一行,包含m個整數,表示整數數列中前m小的數。資料範圍 1 m n 105 1 數列中元素 109 輸入樣例 5 34 5 1 3 2 輸出樣例 1 2 3 includ...

ACM 1002 最大值和最小值

題目 給定n個整數 1 n 100 求出這n個數中的最大值,最小值。輸入 多組資料,第一行為乙個整數n,第二行為n個不超過100的正整數,用空格隔開。輸出 對每組資料輸出一行,包含兩個整數,用乙個空格隔開,分別表示n個數中的最大值和最小值 樣例輸入 54 6 7 3 1 44 3 5 1 樣例輸出 ...