從前有個人名叫w and n and b,他有著天才般的記憶力,他珍藏了許多許多的寶藏。在他離世之後留給後人乙個難題(專門考驗記憶力的啊!),如果誰能輕鬆回答出這個問題,便可以繼承他的寶藏。題目是這樣的:給你一大串數字(編號為1到n,大小可不一定哦!),在你看過一遍之後,它便消失在你面前,隨後問題就出現了,給你m個詢問,每次詢問就給你兩個數字a,b,要求你瞬間就說出屬於a到b這段區間內的最大數。一天,一位美麗的姐姐從天上飛過,看到這個問題,感到很有意思(主要是據說那個寶藏裡面藏著一種美容水,喝了可以讓這美麗的姐姐更加迷人),於是她就竭盡全力想解決這個問題。but,她每次都以失敗告終,因為這數字的個數是在太多了!於是她請天才的你幫他解決。如果你幫她解決了這個問題,可是會得到很多甜頭的哦!
乙個整數n表示數字的個數,接下來一行為n個數。第三行讀入乙個m,表示你看完那串數後需要被提問的次數,接下來m行,每行都有兩個整數a,b。
輸出共m行,每行輸出乙個數。
634 1 8 123 3 2
41 2
1 53 4
2 3
34123123
8rmq
1 #include2 #include3 #include4 #include5 #include6 #include7
#define inf 10000000
8using
namespace
std;910
intn;
11int f[200001][22
];12
void
rmq()
1324}25
}26}27
intmain()
2836
for(int i=1;i<=n;i++)
3740
rmq();
41 scanf("
%d",&m);
42for(int i=1;i<=m;i++)
4348
return0;
49 }
RMQ 模板 vijos1514天才的記憶
p1514天才的記憶 背景 神仙飛啊飛 描述 從前有個人名叫w and n and b,他有著天才般的記憶力,他珍藏了許多許多的寶藏。在他離世之後留給後人乙個難題 專門考驗記憶力的啊!如果誰能輕鬆回答出這個問題,便可以繼承他的寶藏。題目是這樣的 給你一大串數字 編號為1到n,大小可不一定哦!在你看過...
SDOI2017 天才黑客
我們不妨思考一下,兩個串的 lcp 的長度在 trie 樹上是什麼?對應點的 lca 的深度。然後就可以想到把邊看成點,然後把邊與邊之間連邊,點權看成這條邊經過所需要的時間。但是這樣子連邊是 o m 2 的,不夠優秀。我們需要進一步優化。考慮兩個點之間的 lcp 可以用什麼來代替?sa 裡面的 he...
SDOI2017 天才黑客
這題太神了。先模claris 大神的題解。首先我們要將邊轉換為點。如果暴力連邊就會有 m 2 的邊,於是我們考慮優化建圖。難點在於快速得到兩個邊的串的 lcp 也就是 trie 樹上的 lca 我們將一堆點按 dfs 序排序,然後 a 到 b 的 lca 就是排序後 min 這裡的 min 是深度最...