題目描述
度熊手上有一本神奇的字典,你可以在它裡面做如下三個操作:
1、insert : 往神奇字典中插入乙個單詞
2、delete: 在神奇字典中刪除所有字首等於給定字串的單詞
3、search: 查詢是否在神奇字典中有乙個字串的字首等於給定的字串
輸入 這裡僅有一組測試資料。第一行輸入乙個正整數n,代表度熊對於字典的操作次數,接下來n行,每行包含兩個字串,中間中用空格隔開。第乙個字串代表了相關的操作(包括: insert, delete 或者 search)。第二個字串代表了相關操作後指定的那個字串,第二個字串的長度不會超過30。第二個字串僅由小寫字母組成。
輸出 對於每乙個search 操作,如果在度熊的字典中存在給定的字串為字首的單詞,則輸出yes 否則輸出 no。
樣例輸入
5 insert hello
insert hehe
search h
delete he
search hello
樣例輸出
yes
no 提示
1≤n≤100000 第二個字串的長度不會超過30
我恨trie樹。。。離考試結束20分鐘才發現原來的程式有問題,一通亂改還是回天乏術,據說暴力都有**十,而我直接爆0。。。longpo的資料什麼時候才能變強啊。。。
#include
#include
#include
#include
using
namespace
std;
int t,x,j,len,tot;
char s[10],a[35];
int b[35];
struct ty
}p[1000005];
void insert(char *s)
x=p[x].next[j];
p[x].cnt++;
}}void delete(char *s)
int d=p[x].cnt;
for(int i=1;i<=k;i++) p[b[i]].cnt=p[b[i]].cnt-d;
p[x].init();
}int search(char *s)
return1;}
int main()
if(s[0]=='d')
if(s[0]=='s')
}return
0;}
hdu 6080 度度熊保護村莊
嘩啦啦村襲擊了喵哈哈村!度度熊為了拯救喵哈哈村,帶著自己的夥伴去救援喵哈哈村去了!度度熊與夥伴們很快的就過來佔據了喵哈哈村的各個軍事要地,牢牢的守住了喵哈哈村。但是度度熊發現,這是一場曠日持久的戰鬥,所以度度熊決定要以逸待勞,儲存盡量多的體力,去迎戰嘩啦啦村的戰士。於是度度熊決定派盡量多的人去休息,...
HDU 6375 度度熊學佇列
danshlem description 度度熊正在學習雙端佇列,他對其翻轉和合併產生了很大的興趣。初始時有 n 個空的雙端佇列 編號為 1 到 n 你要支援度度熊的 q 次操作。1 u w val 在編號為 u 的佇列裡加入乙個權值為 val 的元素。w 0 表示加在最前面,w 1 表示加在最後面...
hdu6376 度度熊剪紙條
度度熊有一張紙條和一把剪刀。紙條上依次寫著 n 個數字,數字只可能是 0 或者 1。度度熊想在紙條上剪 k 刀 每一刀只能剪在數字和數字之間 這樣就形成了 k 1 段。他再把這 k 1 段按一定的順序重新拼起來。不同的剪和接的方案,可能會得到不同的結果。度度熊好奇的是,字首 1 的數量最多能是多少。...