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...