CSU 1115 最短的名字

2021-08-05 19:08:59 字數 1113 閱讀 4789

submit page

summary

time limit: 5 sec

memory limit: 64 mb

submitted: 1731

solved: 657

在乙個奇怪的村子中,很多人的名字都很長,比如aaaaa, bbb and abababab。

名字這麼長,叫全名顯然起來很不方便。所以村民之間一般只叫名字的字首。比如叫'aaaaa'的時候可以只叫'aaa',因為沒有第二個人名字的前三個字母是'aaa'。不過你不能叫'a',因為有兩個人的名字都以'a'開頭。村里的人都很聰明,他們總是用最短的稱呼叫人。輸入保證村里不會有乙個人的名字是另外乙個人名字的字首(作為推論,任意兩個人的名字都不會相同)。

如果村里的某個人要叫所有人的名字(包括他自己),他一共會說多少個字母?

輸入第一行為資料組數t (t<=10)。每組資料第一行為乙個整數n(1<=n<=1000),即村里的人數。以下n行每行為乙個人的名字(僅有小寫字母組成)。輸入保證乙個村里所有人名字的長度之和不超過1,000,000。

對於每組資料,輸出所有人名字的字母總數。

1

3aaaaa

bbbabababab

5

湖南省第八屆大學生計算機程式設計競賽

想法:

這是乙個比較簡單的題目,目的就是比較兩個字母的最長相同字首,這時想到了sort函式,對所有村民的名字按字典

序排序,這時求村民字母串名字的最大相同字首,則只需和

排序後該名字串的相鄰位置做比較,求最大值。

最後要注意的是第乙個和最後乙個資料的處理。
**:

#include

#include

#include

#include

using namespace std;

string str[1000];

int main()

flag=j+1;

cnt=cnt+(flag>tag?flag:tag);

tag=flag; }

cnt+=flag;

cout<}

return 0; }

CSU 1115 最短的名字

description 在乙個奇怪的村子中,很多人的名字都很長,比如aaaaa,bbb and abababab。名字這麼長,叫全名顯然起來很不方便。所以村民之間一般只叫名字的字首。比如叫 aaaaa 的時候可以只叫 aaa 因為沒有第二個人名字的前三個字母是 aaa 不過你不能叫 a 因為有兩個人...

CSU 1115 最短的名字

csu 1115 在乙個奇怪的村子中,很多人的名字都很長,比如aaaaa,bbb and abababab。名字這麼長,叫全名顯然起來很不方便。所以村民之間一般只叫名字的字首。比如叫 aaaaa 的時候可以只叫 aaa 因為沒有第二個人名字的前三個字母是 aaa 不過你不能叫 a 因為有兩個人的名字...

CSU 1115 最短的名字(字典樹)

description 在乙個奇怪的村子中,很多人的名字都很長,比如aaaaa,bbb and abababab。名字這麼長,叫全名顯然起來很不方便。所以村民之間一般只叫名字的字首。比如叫 aaaaa 的時候可以只叫 aaa 因為沒有第二個人名字的前三個字母是 aaa 不過你不能叫 a 因為有兩個人...