時間限制: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
16409811556
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的單詞 將組成這個單詞的所有字母按照順序不重複的寫出 即遇到相...