滾粗了的hansbug在收拾舊英語書,然而他發現了什麼奇妙的東西。
#udp2.t3如果遇到相同的字串,輸出後面的
蒟蒻hansbug在一本英語書裡面找到了乙個單詞表,包含n個單詞(每個單詞內包含大小寫字母)。現在他想要找出某一段連續的單詞內字典序最大的單詞。
第一行包含兩個正整數n、m,分別表示單詞個數和詢問個數。
接下來n行每行包含乙個字串,僅包含大小寫字母,長度不超過15,表示乙個單詞。
再接下來m行每行包含兩個整數x、y,表示求從第x到第y個單詞中字典序最大的單詞。
輸出包含m行,每行為乙個字串,分別依次對應前面m個詢問的結果。
輸入 #1複製
5 5輸出 #1複製absi
hansbug
lznkkk
yyy1 5
1 11 2
2 34 4
yyy樣例說明:absi
hansbug
lznkkk
第一次操作:在中找出字典序最大的,故為yyy
第二次操作:在中找出字典序最大的,故為absi
第三次操作:在中找出字典序最大的,故為hansbug
第四次操作:在中找出字典序最大的,故為lzn
第五次操作:在中找出字典序最大的,故為kkk
資料規模:
注意事項:1.該題目單詞字典序比對過程中大小寫不敏感,但是輸出必須輸出原單詞
2.該題目時間限制為0.2s
題解:這個線段樹沒有被卡啊……很奇怪為什麼那麼多人被卡
其實不難(如果我沒提交10幾次我可能會說簡單……)
線段樹返回不是最大值而是返回編號,就醬。
#include#include#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int n=50002
;struct
nodee[n];
int mx[n*4
],x,y;
intn,m,a[n];
int maxx(int x,int
y)void pushup(int
rt)
void build(int l,int r,int
rt)
int m=(l+r)/2
; build(l,m,rt*2
); build(m+1,r,rt*2+1
); pushup(rt);
}int query(int l,int r,int l,int r,int
rt)int
main()
}build(
1,n,1
);
for(int i=1;i<=m;i++)
int z=query(x,y,1,n,1
); cout
//cout
return0;
}
洛谷P2412 查單詞 trie樹 RMQ
滾粗了的hansbug在收拾舊英語書,然而他發現了什麼奇妙的東西。蒟蒻hansbug在一本英語書裡面找到了乙個單詞表,包含n個單詞 每個單詞內包含大小寫字母 現在他想要找出某一段連續的單詞內字典序最大的單詞。輸入格式 第一行包含兩個正整數n m,分別表示單詞個數和詢問個數。接下來n行每行包含乙個字串...
單詞接龍 洛谷 1019
題目描述 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如 beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的...
洛谷 1101 單詞方陣
給一nxn的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著8個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間 color red 可以 color 交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8...