洛谷 2412 查單詞

2022-05-25 19:36:13 字數 1610 閱讀 9127

滾粗了的hansbug在收拾舊英語書,然而他發現了什麼奇妙的東西。

#udp2.t3如果遇到相同的字串,輸出後面的

蒟蒻hansbug在一本英語書裡面找到了乙個單詞表,包含n個單詞(每個單詞內包含大小寫字母)。現在他想要找出某一段連續的單詞內字典序最大的單詞。

第一行包含兩個正整數n、m,分別表示單詞個數和詢問個數。

接下來n行每行包含乙個字串,僅包含大小寫字母,長度不超過15,表示乙個單詞。

再接下來m行每行包含兩個整數x、y,表示求從第x到第y個單詞中字典序最大的單詞。

輸出包含m行,每行為乙個字串,分別依次對應前面m個詢問的結果。

輸入 #1複製

5 5

absi

hansbug

lznkkk

yyy1 5

1 11 2

2 34 4

輸出 #1複製

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...