計蒜客 字典樹 糟糕的bug

2021-08-20 12:30:31 字數 1230 閱讀 4416

蒜頭君作為蒜廠的工程師,在開發**時不小心寫出了乙個 bug:當使用者輸入密碼時,如果既和自己的密碼一致,也同時是另乙個使用者密碼的 字首 時,使用者會跳轉到 404 頁。

然而蒜頭君堅稱:我們的使用者那麼少,怎麼可能觸發這個 bug……

機智的你,能不能幫蒜頭君確認一下這個 bug 到底會不會觸發呢?

第一行輸入乙個整數n(1

≤n≤2

3333

3),表示蒜廠**的使用者數。接下來一共 n

行,每行乙個由小寫字母a-z組成的字串,長度不超過 1

0,表示每個使用者的密碼。蒜廠的資料庫容量太小,所有密碼長度加起來小於 466

666。

如果觸發了 bug 則輸出一行bug!,否則輸出一行good luck!

樣例輸入1

3

abcabcdef

cdef

樣例輸出1

bug!

樣例輸入2

3

abcbcd

cde

樣例輸出2

good luck!

題目型別就是串匹配,找字首,多串情況下,很應該想到字首樹,也稱為trie樹。

我們要注意的地方是 本身find函式查詢密碼本身過程中一定會返回1 我們要手動返回0

第二 因為一定能找到 所以在find函式中 我手動注釋了兩個if 因為不會除法(這題的小細節

#include #include #include #include #include using namespace std;

const int max_n = 466670;

const int max_c  = 26;

char s[233335][15];

struct trie

void insert(char *str)

if(ch[p][str[i]-'a']==-1)

p = ch[p][str[i]-'a'];

}cnt[p]++;

}int find(char *str)

return 0;

}};trie trie;

int main()

for ( int i = 0 ; i < t ; ++ i )

}if ( ans ) else

return 0;

}

計蒜客 習題 糟糕的bug(Trie樹)

蒜頭君作為蒜廠的工程師,在開發 時不小心寫出了乙個 bug 當使用者輸入密碼時,如果既和自己的密碼一致,也同時是另乙個使用者密碼的字首時,使用者會跳轉到 404 頁。然而蒜頭君堅稱 我們的使用者那麼少,怎麼可能觸發這個 bug 機智的你,能不能幫蒜頭君確認一下這個 bug 到底會不會觸發呢?第一行輸...

計蒜客 硬幣翻轉 線段樹

原題鏈結 線段樹,每個節點儲存的資訊 左端點正面向上的最大長度和反面向上的最大長度,右端點正面向上的最大長度 和反面向上的最大長度 該區間正面向上的最大長度 和反面向上的最大長度 當然這裡的最大長度是連續的。lazy標記表示其子節點是否需要更新。struct nodet maxn ac includ...

計蒜客 管家的忠誠 線段樹

老管家是乙個聰明能幹的人。他為財主工作了整整10年,財主為了讓自已賬目更加清楚。要求管家每天記k次賬,由於管家聰明能幹,因而管家總是讓財主十分滿意。但是由於一些人的挑撥,財主還是對管家產生了懷疑。於是他決定用一種特別的方法來判斷管家的忠誠,他把每次的賬目按1,2,3 編號,然後不定時的問管家問題,問...