vijos P1514天才的記憶

2022-04-17 22:55:21 字數 1022 閱讀 5765

從前有個人名叫w and n and b,他有著天才般的記憶力,他珍藏了許多許多的寶藏。在他離世之後留給後人乙個難題(專門考驗記憶力的啊!),如果誰能輕鬆回答出這個問題,便可以繼承他的寶藏。題目是這樣的:給你一大串數字(編號為1到n,大小可不一定哦!),在你看過一遍之後,它便消失在你面前,隨後問題就出現了,給你m個詢問,每次詢問就給你兩個數字a,b,要求你瞬間就說出屬於a到b這段區間內的最大數。一天,一位美麗的姐姐從天上飛過,看到這個問題,感到很有意思(主要是據說那個寶藏裡面藏著一種美容水,喝了可以讓這美麗的姐姐更加迷人),於是她就竭盡全力想解決這個問題。but,她每次都以失敗告終,因為這數字的個數是在太多了!於是她請天才的你幫他解決。如果你幫她解決了這個問題,可是會得到很多甜頭的哦!

乙個整數n表示數字的個數,接下來一行為n個數。第三行讀入乙個m,表示你看完那串數後需要被提問的次數,接下來m行,每行都有兩個整數a,b。

輸出共m行,每行輸出乙個數。

6

34 1 8 123 3 2

41 2

1 53 4

2 3

34

123123

8rmq

1 #include2 #include3 #include4 #include

5 #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 是深度最...