度熊的字典

2021-07-14 22:27:50 字數 1245 閱讀 5725

題目描述

度熊手上有一本神奇的字典,你可以在它裡面做如下三個操作:

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 的數量最多能是多少。...