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

2021-07-26 03:42:51 字數 1131 閱讀 4000

description

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

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

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

input

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

output

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

sample input

1 3

aaaaa

bbb

abababab

sample output

hint

source

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

解法:字典樹入門題

#include

#include

#include

#include

#include

using

namespace

std;

typedef

struct nodenode;

node *t;

char s[1000005];

void build(node* t) //建樹

else

} }void release(node *t) //釋放結點

int search(node *t) //查詢

return sum;

} int main()

printf("%d\n",search(t));

release(t);

}return

0;}

CSU 1115 最短的名字 字典樹

點我看題 題意 找出每個字串的公共字首的下乙個位置,計算這些長度之和.分析 基礎字典樹.寫的時候一直在re,陣列開的太大,但是沒有給出name的最長,只能估計了.參考 include include include include includeusing namespace std define ...

CSU 1115 最短的名字

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

CSU 1115 最短的名字

submit page summary time limit 5 sec memory limit 64 mb submitted 1731 solved 657 在乙個奇怪的村子中,很多人的名字都很長,比如aaaaa,bbb and abababab。名字這麼長,叫全名顯然起來很不方便。所以村民之...