題敘就不囉嗦ㄌ。
我會給你一堆長度介於1到5之間的小寫英文字串,然後狂問,問爆的那種。
但只會問兩種問題:
1.若依字典序排列,詢問某一個字串是整排字串裡面排倒數第幾個的。
2.詢問在原序列中的某一個字串前,有幾個字串的字典序在他前面。
兩個字串若要依字典序進行比較,我們會從字串中的第一個字元開始逐字比較。
若遇到相異的情況,則兩字串的大小關係即為該相異字元的大小關係(例如a在z前面、h在g後面)。若未比出大小,某一字串就已經抵達末端,則較長字串的字典序在後。
詳見範例說明。
第一行為一個正整數 $n$ ,表示總共有 $n$ 個字串。
第二行有 $n$ 個長度介於1到5之間的小寫英文字串,字串的出現順序即為該字串的編號,此字串序列還未經字典序排列。
第三行會有兩個正整數 $q_1$,$q_2$,表示會問 $q_1$ 次「某一個字串的字典序是整排字串裡面排倒數第幾個的」,再問 $q_2$ 次「在某一個字串前,有幾個字串的字典序在他前面」。
第四行會有$q_1$ 個正整數($a_1$,$a_2$,$a_3$,...),分別詢問編號為 $a_1$,$a_2$,$a_3$,... 之字串的字典序是整排字串裡面排倒數第幾個的。
第五行會有 $q_2$ 個正整數($b_1$,$b_2$,$b_3$,...),分別詢問編號為 $b_1$,$b_2$,$b_3$,... 的字串前,有幾個字串的字典序在它前面。
同一行中若出現數個字串或數字,皆會以空白隔開。
請輸出 2 行,第一行輸出 $q_1$ 個正整數,依序回答第一種詢問的所有提問。
第二行輸出 $q_2$ 個正整數,依序回答第二種詢問的所有提問。
數字間皆由空白隔開。
5 ok ok okk okg o 4 3 1 2 3 5 5 3 4
3 3 1 5 0 2 2
10 ricky lai is the best ceo in the world xd 8 6 9 1 5 6 7 3 2 4 5 2 6 9 1 2
2 5 10 9 8 7 6 3 0 0 1 8 0 0
範例1說明
原字串序列為 ok ok okk okg o,依字典序,排序後變成o ok ok okg okk。
針對第一種問題的4個詢問,可看出:
編號為1的ok是排在倒數第3個。
編號為2的ok是排在倒數第3個。
編號為3的okk是排在倒數第1個。
編號為5的o是排在倒數第5個。
針對第二種問題的3個詢問,可看出:
編號為5的o,在原序列中,前面沒有字串的字典序在它前面,因為o是經字典序排列後的第一個字串。
編號為3的okk,在原序列中,它前面有2個字串(ok、ok)的字典序在它前面。
編號為4的okg,在原序列中,它前面有2個字串(ok、ok)的字典序在它前面。
測資限制
評分說明
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」
|