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,所以我們可以同時...