hdu 2243 考研路茫茫 單詞情結

2021-08-26 22:10:20 字數 667 閱讀 9779

題目大意:問長度為1~n的串中包含了模式串的串總共有幾個。

題目思路:求出長度不大於l的包含模式串的字串數,方法是改求不包含模式串的字串總數,當然先要處理出總的字串個數,可以用矩陣也可以用二分冪和的方法。而求不包含模式串的字串數同樣是構造矩陣,同時還要建立乙個虛結點,儲存長度小於l的不包含模式串的字串總數。

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

#define uint unsigned __int64

#define max 110

int max(int a,int b)

int min(int a,int b)

ans=a[0][0];

}void solve(int n)

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

ans-=a[0][i];

}int main()

getsum(l);

bfs();

solve(l);

printf("%i64u\n",ans+1);

}}

hdu 2243 考研路茫茫 單詞情結

hdoj 2243 不僅僅是考研路茫茫 a此題的過程也是路茫茫 終於到最後柳暗花明了 a這個題用了3天 或者說用了1個月 因為1個月前就學了kmp和ac自動機 雖然上個月那節課學了kmp匹配演算法 字典樹 ac自動機。當時就聽得一頭霧水 特別是kmp那個失敗指標 或者說成是next fail.有那麼...

HDU 2243 考研路茫茫 單詞情結

這道題和poj2778類似都需要利用end陣列和next陣列的特性構建狀態陣列,不過這裡是需要經過至少乙個目標串,而且長度是不小於l的,即需要長度為1 l時的種數和。然後我們可以求出總數後減去不經過目標串的和,剩下的就是我們要的答案。設總數的陣列為f n 當n為1時答案為26,n為2時為26 26 ...

HDU2243 考研路茫茫 單詞情結

傳送門 to hdu 傳送門 to vj 考慮一位一位的加入字元,我們只在乎當前字串末尾的匹配情況。既然如此,我們用 acac ac自動機上的乙個節點來表示狀態就可以了。現在是乙個 dpdp dp轉移。似乎要儲存是否曾經出現過詞根?其實不用,只需要用所有情況減去一次都沒有出現過的情況即可。向量中加入...