2017 8 14 文字生成器 失敗總結

2021-08-06 05:08:26 字數 718 閱讀 4066

以後凡是在乙個中出現》=1次的題就直接轉0次用容斥好了、  

然後剩下的就是怎麼找乙個單詞也不出現的文字的個數了

顯然,這種計數類問題需要用dp  ,而且我們需要知道所有單詞會為我們新增字母造成影響,所以需要用ac自動機,跳過所有標記的單詞 

以前是寫的指標ac自動機,但它不好寫而且巨慢、 所以換了陣列

要注意用0表示null   1表示root   為了方便,我們將0的所有下乙個賦為root    同時這個失配指標是指向最近的和自己相同的字母   root可表示所有字母..

而且失配是單詞這個點也不能取,,因為

然後sp陣列開小了溢位導致f陣列儲存資訊錯誤、、查了1.5h才查出來

碼:

#include#include#include#includeusing namespace std;

queueq;

int sz=1,ans1,ans2,n,m,i,j,sp[7000],ch[7000][27],dc[7000],f[105][7000];

char str[105];

#define p 10007

void ins()

{ int l=strlen(str),i,o=1;

for(i=0;i

文字生成器

給出 n 個單詞和文字長度 m 求有多少文字滿足其內至少包含乙個單詞,答案對 10007 取餘。直接求滿足的文字比較困難,我們考慮求答案的補集,也就是不包含任何乙個單詞的文字串的數量。對於這個答案我可以用 dp 求解,但考慮對單詞的查詢我們需要用 a c自動機解,因此題目就比較明顯了,ac 自動機上...

bzoj 1030 文字生成器

題意 給出乙個n個單詞的字典,單詞長度 100 求長度為m的隨機字串中有多少個串至少包括乙個單詞 n 60,m 100 題解 好久沒有寫ac自動機啦,如今還記得模板真是難得 然而這似乎是trie圖?總之寫出來不差幾句話 首先至少包括乙個單詞這個條件不太好弄 那就轉化一下,求不含單詞的字串個數 然後就...

BZOJ 1030 文字生成器

1030 jsoi2007 文字生成器 time limit 1 sec memory limit 162 mb submit 4777 solved 1986 submit status discuss description jsoi交給隊員zyx乙個任務,編制乙個稱之為 文字生成器 的電腦軟體...