BZOJ 1030 文字生成器

2022-05-31 07:24:08 字數 765 閱讀 3903

很老的題目了,很早以前學ac自動機的時候就a過一次

今天算是複習啦

我們可以把問題轉化成乙個給定字串都沒出現的字串有多少個

我們建立ac自動機,設dp[i][j]表示走了i步當前在j節點上

在dp的過程中不轉移單詞節點即可

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

const int maxn=6010;

const int mod=10007;

int n,m,cnt=1,ans;

char s[maxn];

int t[maxn][26];

int fail[maxn];

int dp[102][maxn];

bool end[maxn];

queueq;

void insert()end[now]=true;

}void build_fail()else t[u][i]=k?t[k][i]:1;

} }return;

}void get_dp()

} }return;

}int pow_mod(int v,int p)return tmp;

}int main()

ans=pow_mod(26,m)-ans;

ans=(ans+mod)%mod;

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

return 0;

}

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乙個任務,編制乙個稱之為 文字生成器 的電腦軟體...

BZOJ 1030文字生成器

第一次做ac自動機 dp的題。因為前日做過一道字串dp題,這題做起來相對沒那麼困難一些。覺得一時間這題無法下手可以先試試這場div3的f題 題意 給你n個模式串,現在構造出m長度僅有26個字母的文字串,使其中至少包含1個模式串,問有多少個。思路 很容易想到dp,dpij,i表示構造到第幾位,j來列舉...