字典樹模板題。涉及到字典樹的插入,查詢,刪除操作。
最開始使用的是動態陣列來解,這樣做的話,如果測試樣例先是刪除操作,就會報陣列溢位錯誤。奉上字典樹模板
開始使用這個模板時,說這個模板容易爆記憶體溢位,不過多慮了(大概開350萬才會爆),除此之外時間也稍微久了一點,但是理解相比其它字典樹模板也更加容易
#include#includeusing namespace std;
const int maxn=1000005;
const int maxm=27;
struct trie
int newnode()
void insert(char*s)
void insert(char *s)
if(ch[p][s[i]-'a']==-1)
p=ch[p][s[i]-'a'];
cnt[p]++;}}
int find(char *s)
p=ch[p][s[i]-'a'];
}return cnt[p];
}void del(char *s,int len)
for(int i=0;i>n;
trie.init();
while(n--)
else
}return 0;
}
字典樹(增刪改查 HDU 5687)
度熊手上有一本神奇的字典,你可以在它裡面做如下三個操作 1 insert 往神奇字典中插入乙個單詞 2 delete 在神奇字典中刪除所有字首等於給定字串的單詞 3 search 查詢是否在神奇字典中有乙個字串的字首等於給定的字串 input這裡僅有一組測試資料。第一行輸入乙個正整數n 1 n 10...
最容易理解的排序演算法
排序不難,但是有時候我們容易出錯,容易混淆等等,我們慢慢來分析,從最簡單的開始慢慢深入理解。插入排序 直接插入排序 每一步將乙個待排的記錄根據關鍵字的大小插入已經排好序的那部分裡邊去,直到所有的都插完為止。我們來看例子來分析 初始大小 57 68 59 52 1 第乙個數是57,就乙個數,所以就預設...
js Array操作的最簡短最容易理解方法
array 的方法 1 array.join 把所有元素用符號鏈結成string返回,如果元素不是基本型別,先呼叫tostring.它對應string.split arr 1,2,true,3,4,5 arr.join 1 2 true 3 4 5 2 array.reverse 逆序排列陣列 ar...