洛谷P2292 L語言

2022-05-20 12:38:38 字數 546 閱讀 3557

題目大意:給定乙個長度為 n 的字串和乙個字典,字典中所有的字串的長度均不超過 10,求給定的字串從前往後最多有多少位可以與字典匹配。

題解:設 \(dp[i]\) 表示串的前 i 位是否能夠與字典匹配,若 \(dp[i]=1\),則對 s[i+1,~] 部分與字典進行匹配,即:對可以匹配的最大長度進行拓展。由於字典中每個串的長度很小,一次拓展最多隻會執行 10 次運算,因此總的複雜度為 \(o(10*n*m)\)。

**如下

#include using namespace std;

const int maxn=1e6+10;

int trie[200][26],tot=1,ed[maxn];

int n,m,dp[maxn];

char s[20],s[maxn];

void insert(char *ss)

ed[now]=1;

}void find(char *ss)

} printf("%d\n",ans);

}int main()

洛谷 P 2292 L語言 AC自動機

一道比較簡單的題,結果自己腦補了各種奇葩 錯誤 的判斷,搞了乙個多小時。題意 用已知字典去識別乙個串,求最長可識別字首 指能將此字首分解為字典裡面的單詞 思路 建好ac自動機,記錄好每個點所代表的字串的長度 拿要匹配的串從前往後匹配,若某個點完全不能匹配,直接退出 可以不考慮這個 處理好什麼叫 可以...

洛谷 P2292 HNOI2004 L語言

ac自動機 dp 洛谷這題資料加強之後用bfs t了最後一兩個點 用了乙個dp陣列做轉移 注意一下字串下標的偏移 因為有了dp陣列 存下trie樹上的結尾結點的字串長度 注意一下ac自動機的空間和dp陣列的空間 其他就沒啥了 include include include include inclu...

洛谷 P2292 HNOI2004 L語言

標點符號的出現晚於文字的出現,所以以前的語言都是沒有標點的。現在你要處理的就是一段沒有標點的文章。一段文章t是由若干小寫字母構成。乙個單詞w也是由若干小寫字母構成。乙個字典d是若干個單詞的集合。我們稱一段文章t在某個字典d下是可以被理解的,是指如果文章t可以被分成若干部分,且每乙個部分都是字典d中的...