2797 最短字首

2021-08-28 21:44:15 字數 687 閱讀 5822

主要思想:

1.根節點不含任何字元

2.每一層最多26個 ,26條路徑代表26個字母

3.從根節點到某乙個節點,路徑上經過的字元連線起來,為該節點對應的字串。

最基本的字典樹結構:

struct trie;
先序遍歷就是按字典公升序排列
//字典樹

//輸入同時插入 記錄字首

//查詢 字首個數為1 的就是最短

#include#include#includetypedef struct trietrie;

trie root;

//初始化

void init(trie* node)

void insert(char* str)

p= p->next[t];

p->num++; }}

void find(char* str)

}int main()

//查詢最短字串

for(int i=0;i1)資料結構的靈活使用!!!

字典樹

POJ2797 最短字首

總時間限制 1000ms 記憶體限制 65536kb 描述 乙個字串的字首是從該字串的第乙個字元起始的乙個子串。例如 carbon 的字串是 c ca car carb carbo 和 carbon 注意到這裡我們不認為空串是字串,但是每個非空串是它自身的字串.我們現在希望能用字首來縮略的表示單詞。...

1799 最短字首

總時間限制 1000ms記憶體限制 65536kb 描述 乙個字串的字首是從該字串的第乙個字元起始的乙個子串。例如 carbon 的字串是 c ca car carb carbo 和 carbon 注意到這裡我們不認為空串是字串,但是每個非空串是它自身的字串.我們現在希望能用字首來縮略的表示單詞。例...

LA 2797 怪物陷阱(平面直線PSLG)

題目 把直線的每兩個端點點處理一遍,因為只有貼著端點才能過。若遇到直線端點相交情況,把每條線段稍微延長一點,通過判斷是否相交即可判斷是否可以通過 includeusing namespace std struct point int n typedef point vector vector ope...