5 區間第k最小

2021-09-05 01:24:57 字數 967 閱讀 1407

description

找到給定陣列的給定區間內的倒數第

k小的數值。

input

輸入的第一行為陣列,每乙個數用空格隔開;第二行是區間(第幾個數到第幾個數,兩頭均包含),兩個值用空格隔開;第三行為k值。

output

結果。sample input 1 

1 2 3 4 5 6 7

3 5 2

sample output 1 4

class minmum:

def minsubsum(self,arrag,a,b,s):

arrnew=

for i in range(int(a)-1,int(b)):

sd=self.mins(arrnew,s)

return sd

def mins(self,arrag1,s):

for i in range(len(arrag1)):

for j in range(i,len(arrag1)):

if int(arrag1[i]) > int(arrag1[j]):

temp= arrag1[i]

arrag1[i]=arrag1[j]

arrag1[j]=temp

#print(arrag1)

ls=arrag1[int(s)-1]

return ls

if __name__ == "__main__":

a=b=

ms=minmum()

sda=input()

sde=sda.split()

a.extend(sde)

s=input()

e=input()

h=s.split()

b.extend(h)

fde=ms.minsubsum(a,b[0],b[1],e)

print(fde)

59 區間k大數查詢

問題描述 給定乙個序列,每次詢問序列中第l個數到第r個數中第k大的數是哪個。注意,由於存在相等的元素,因此,第2大的數可能和第1大的數相等。輸入說明 第一行包含乙個數n,表示序列長度。第二行包含n個正整數,表示給定的序列。第三個包含乙個正整數m,表示詢問個數。接下來m行,每行三個數l,r,k,表示詢...

HDU 5592 區間第K大 線段樹

題目 z yb 有乙個排列pp 但他只記得pp 中每個字首區間的逆序對數,現在他要求你還原這個排列.輸入 1 3 0 1 2 輸出 3 1 2題解 num k num k 1 是排列中第k個數貢獻的逆序數對,故 k num k num k 1 是第k個數在前k個數中的排名 從小到大 逆向確認排列,確...

GDOI2018模擬8 12 區間第k小

orz 資料結構 根號演算法講師 首先如果詢問可以離線怎麼做?乙個顯然的思路就是莫隊 資料結構直接做,但是這樣是o nn logn 的 實測資料無梯度乙個點都跑不過qwq 但是我們觀察莫隊,我們最壞可能有nn 次插入,但只有n次詢問,我們考慮平衡一下這兩個複雜度 觀察到值域也只有n,所以我們可以同時...