P4052 JSOI2007 文字生成器

2022-04-30 11:15:09 字數 599 閱讀 4404

p4052 [jsoi2007]文字生成器

ac自動機+dp

優秀題解傳送門

設f[ i ][ j ]表示串的長度為 i ,當前在 j 點時不可識別的串的方案數

最後用總方案數減去不可識別方案數就是答案了

因為題解寫的很好所以我就只在**中加點注釋了(逃

#include#include

#include

#include

using

namespace

std;

const

int mod=10007

;struct

dataa[

6002

];int n,m,cnt,ans=1,f[102][6002

];char q[102

];inline

void

trie_build()++a[u].end;

}inline

void

ac_build()

else to=a[a[x].fail].nxt[i];}}

}int

main()

BZOJ1030 JSOI2007文字生成器

比起前面hnoi的gt考試,貌似這題是多模式串。然後我滾去學ac自動機了。發現還是很好寫的。ac自動機部分見筆記 搞出自動機之後,f i j 表示自動機上第i個節點匹配到第j個字元不可讀文字的數量,然後自己yy一下轉移 include include include define n 10005 d...

bzoj1030 JSOI2007 文字生成器

傳送門 思路 直接算好像比較困難,所以考慮先算不可讀的串的個數,再拿總串數去減。不可讀的串的數量就是在ac自動機上走m步而不經過結尾節點 包括結尾點和fail指向結尾點的節點 的路徑條數。這個怎麼求呢?設f i j 表示走i步,現在在j號節點的路徑條數。那麼f i j 可以轉移f i 1 son j...

bzoj1030 JSOI2007 文字生成器

time limit 1 sec memory limit 162 mb submit 2891 solved 1193 submit status discuss jsoi交給隊員zyx乙個任務,編制乙個稱之為 文字生成器 的電腦軟體 該軟體的使用者是一些低幼人群,他們現在使用的是gw文字生成器v...