zjm 收到了 q老師 送來的生日禮物,但是被 q老師 加密了。只有 zjm 能夠回答對 q老師 的問題,q老師 才會把密碼告訴 zjm。
q老師 給了 zjm 一些僅有 01 組成的二進位制編碼串, 他問 zjm:是否存在乙個串是另乙個串的字首。
多組資料。每組資料中包含多個僅有01組成的字串,以乙個9作為該組資料結束的標誌。
對於第 k 組資料(從1開始標號),如果不存在乙個字串使另乙個的字首,輸出"set k is immediately decodable",否則輸出"set k is not immediately decodable"。
每組資料的輸出單獨一行。
用字典樹來儲存。
往字典樹中依次插入每個字串,假設當前字串為s,則需要判斷兩種情況,s是否為之前某個字串的字首,之前是否有某個字串是s的字首。
第一種情況:當字串s插入結束後,如果最後乙個節點是字典樹中已經存在的節點,則說明s是之前某個字串的字首。
第二種情況:在字串s插入過程中,如果遇到某乙個字典樹中的節點是某乙個字串的結尾,則說明存在某個字串是s的字首。
一道用字典樹求字首問題的題目,應理解字典樹的結構,在此基礎上修改字典樹插入的**,解決題目。
#include
#include
#include
using
namespace std;
bool ans=0;
struct trie
void
clear()
void
insert
(string str)
else
if(i==str.
size()
-1||flag[child[now]
[x]]
) ans=1;
now=child[now]
[x];
} flag[now]=1
;}bool
query
(string str)
return
false;}
};intmain()
if(ans==1)
cout<<
"set "
<" is not immediately decodable"
cout<<
"set "
<" is immediately decodable"
<}}
Week15實驗 B ZJM的本領 模擬
眾所周知,zjm 住在 b 站。這一天 q 老師來找 zjm 玩,zjm 決定向 q 老師展現一下自己快速看番的本領。zjm 讓 q 老師任意挑選了一部番,q老師一眼看中了 輝夜大小姐想讓我告白 已知這部番一共有 n 個精彩片段,每個精彩片段用 l i r i 來表示。zjm 從第一分鐘開始看,每次...
Week15作業 C ZJM與紙條 KMP
zjm 的女朋友是乙個書法家,喜歡寫一些好看的英文書法。有一天 zjm 拿到了她寫的紙條,紙條上的字暗示了 zjm 的女朋友 想給 zjm 送生日禮物。zjm 想知道自己收到的禮物是不是就是她送的,於是想看看自己收到的禮物在紙條 現了多少次。第一行輸入乙個整數代表資料的組數 每組資料第一行乙個字串 ...
程式設計思維與實踐 Week15 作業
problem description 哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能 當...