單詞查詢樹

2021-08-05 20:39:41 字數 1107 閱讀 9315

問題 c: 單詞查詢樹

時間限制: 1 sec 記憶體限制: 128 mb

提交: 33 解決: 25

[提交][狀態][討論版]

題目描述

在進行文法分析的時候,通常需要檢測乙個單詞是否在我們的單詞列表裡。為了提高查詢和定位的速度,通常都畫出與單詞列表所對應的單詞查詢樹,其特點如下:

1.根結點不包含字母,除根結點外每乙個結點都僅包含乙個大寫英文本母;

2.從根結點到某一結點,路徑上經過的字母依次連起來所構成的字母序列,稱為該結點對應的單詞。單詞列表中的每個單詞,都是該單詞查詢樹某個結點所對應的單詞;

3.在滿足上述條件下,該單詞查詢樹的結點數最少。

4.例如圖左邊的單詞列表就對應於右邊的單詞查詢樹。注意,對乙個確定的單詞列表,請統計對應的單詞查詢樹的結點數(包含根結點)。

輸入 輸入乙個單詞列表,每一行僅包含乙個單詞和乙個換行/回車符。每個單詞僅由大寫的英文本母組成,長度不超過63個字母 。輸入檔案總長度不超過32k,至少有一行資料。

輸出 輸出乙個整數,該整數為單詞列表對應的單詞查詢樹的結點數。

樣例輸入

a an

asp

as asc

ascii

bas

basic

樣例輸出

13

#include

#include

#include

#include

#include

#include

#include

#define maxn 500001

#define ll long long

using

namespace

std;

struct trie

node[maxn],*root;

int f[maxn],n,t,sz,ans;

inline trie* newnode()

inline

void insert(char *s)

now->dfn=t;

}int main()

cout

0;

}

單詞查詢樹

兩種方法 給出一些列號碼,若果任乙個號碼不在另乙個中充當字首,那麼這系列號碼是合理的輸出yes,否則輸出no 思路 標頭檔案中find函式的使用,按長度從小到大排列,那麼能當另乙個號碼字首的只能是前乙個當後乙個的字首,所以乙個乙個找 時間複雜度 o n include include include...

單詞查詢樹

一 概念 從上面的圖中,我們或多或少的可以發現一些好玩的特性。第一 根節點不包含字元,除根節點外的每乙個子節點都包含乙個字元。第二 從根節點到某一節點,路徑上經過的字元連線起來,就是該節點對應的字串。第三 每個單詞的公共字首作為乙個字元節點儲存。二 使用範圍 既然學trie樹,我們肯定要知道這玩意是...

單詞查詢樹

在進行文法分析的時候,通常需要檢測乙個單詞是否在我們的單詞列表裡。為了提高查詢和定位的速度,通常都畫出與單詞列表所對應的單詞查詢樹,其特點如下 1 根結點不包含字母,除根結點外每乙個結點都僅包含乙個大寫英文本母 2 從根結點到某一結點,路徑上經過的字母依次連起來所構成的字母序列,稱為該結點對應的單詞...