題意:
中問題。
題解:
字典樹的模板題,我是看這位大佬學習的字典樹:
字典樹的最大時間複雜度為o(n),n代表字串的長度。
這道題主要用來練練手,看看模板是否有問題,這道題我分別寫了陣列版的和指標版的,神奇的是指標版的在g++會超記憶體,而c++過了。。。不知道**有問題,求大佬講解一下,不甚感激。
陣列版
//陣列版
#include
#include
#include
using
namespace
std;
const
int maxn=500000+7;
int trie[maxn][26];
int vis[maxn];
int tot=1;
void insert(char *s)
rt=trie[rt][x];
vis[rt]++;
}}int find(char *s)
return vis[rt];
}int main()
}
指標版
//指標版
#include
#include
#include
using namespace std;
struct node
*root;
node *build()
void insert(char *s) }
int find(char *s)
return r->cnt;
}int main()
while(~scanf("%s",s))
}//這道題的指標版要用c++才能過。。。。不知道為什麼。。
還有乙個指標版
//另外乙個指標版
#include
#include
#include
using
namespace
std;
struct node
}*root;
void insert(char *s) }
int find(char *s)
return r->cnt;
}int main()
while(~scanf("%s",s))
}
HDU1251字典樹模板
problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...
HDU1251 字典樹板子題
題意 中文題,統計以某字串作為字首的字串個數 剛學字典樹,理解起來十分簡單,就是維護乙個多叉樹,這裡用的是鍊錶版本,後面就用的是陣列版本了,個人更喜歡陣列版本,這裡的鍊錶版本就因為 莫名其妙的錯誤 c 能過而g 就會mle 可能是兩者管理記憶體的方式不一樣吧 1 include2 include3 ...
hdu 1251 字典樹入門
ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行...