hiho一下十六周 RMQ ST演算法

2022-09-17 22:09:20 字數 1652 閱讀 6213

時間限制:10000ms

單點時限:1000ms

記憶體限制:256mb

描述小hi和小ho在美國旅行了相當長的一段時間之後,終於準備要回國啦!而在回國之前,他們準備去超市採購一些當地特產——比如漢堡(大霧)之類的回國。

但等到了超市之後,小hi和小ho發現者超市擁有的商品種類實在太多了——他們實在看不過來了!於是小hi決定向小ho委派乙個任務:假設整個貨架上從左到右拜訪了n種商品,並且依次標號為1到n,每次小hi都給出一段區間[l, r],小ho要做的是選出標號在這個區間內的所有商品重量最輕的一種,並且告訴小hi這個商品的重量,於是他們就可以毫不費勁的買上一大堆東西了——多麼可悲的選擇困難症患者。

(雖然說每次給出的區間仍然要小hi來進行決定——但是小hi最終機智的選擇了使用隨機數生成這些區間!但是為什麼小hi不直接使用隨機數生成購物清單呢?——問那麼多做什麼!)

輸入每個測試點(輸入檔案)有且僅有一組測試資料。

每組測試資料的第1行為乙個整數n,意義如前文所述。

每組測試資料的第2行為n個整數,分別描述每種商品的重量,其中第i個整數表示標號為i的商品的重量weight_i。

每組測試資料的第3行為乙個整數q,表示小hi總共詢問的次數。

每組測試資料的第n+4~n+q+3行,每行分別描述乙個詢問,其中第n+i+3行為兩個整數li, ri,表示小hi詢問的乙個區間[li, ri]。

對於100%的資料,滿足n<=10^6,q<=10^6, 1<=li<=ri<=n,0輸出

對於每組測試資料,對於每個小hi的詢問,按照在輸入**現的順序,各輸出一行,表示查詢的結果:標號在區間[li, ri]中的所有商品中重量最輕的商品的重量。

樣例輸入

10

7334

1556

8286

1640

2699

4807

8068

9814120

2179

53 4

2 82 4

6 87 10

樣例輸出

1640

9811556

981981

【分析】rmq查詢區間最值。

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 2e9

#define met(a,b) memset(a,b,sizeof a)typedef

long

long

ll;using

namespace

std;

const

int n = 1e6+5

;const

int m = 4e5+5

;int dp[n][21

];int

n,a[n],m;

void

rmq_init()

}}int rmq_query(int l,int

r)

intmain ()

return0;

}

hiho一下 最近公共祖先 一

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述小ho最近發現了乙個神奇的 雖然還不夠像58同城那樣神奇,但這個 仍然讓小ho樂在其中,但這是為什麼呢?為什麼呢?小hi如是問道,在他的觀察中小ho已經沉迷這個 一周之久了,甚至連他心愛的樹玩具都棄置一邊。嘿嘿,小hi,你...

hiho一下 第二週

題目名稱 trie樹 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一本詞典,於是小hi就向小ho提出了那個經典的問題 小ho,你能不能對於每乙個我給出的字串,都在這個詞典裡面找到以這個字串開頭的所...

hiho一下第143周

題目1 hiho密碼 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述 小ho根據最近在密碼學課上學習到的知識,開發出了一款hiho密碼,這款密碼的秘鑰是這樣生成的 對於一種有n個字母的語言,選擇乙個長度為m的單詞 將組成這個單詞的所有字母按照順序不重複的寫出 即遇到相...