随笔分类 -  数据结构-AC自动机

摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 typedef long long ll; 6 const char* ss="ATCG"; 7 const int N=100+10,M=4,mod=100000; 8 int m,n; 9 char s[N]; 10 struct Mat { 11 i... 阅读全文
posted @ 2019-05-09 23:29 jrltx 阅读(165) 评论(0) 推荐(0)
摘要:初始有一个空串s,从前n个大写字母中不断随机取出一个字母添加到s的结尾,出现模式串t时停止,求停止时s的长度期望。 这道题解法不唯一,比较无脑的方法是对模式串t建一个单串AC自动机,设u为自动机上的一个结点,dp[u]为从该结点出发走到终结状态时的期望步数,则dp[u]=∑(1+dp[v])/n,v 阅读全文
posted @ 2019-02-01 11:47 jrltx 阅读(290) 评论(0) 推荐(0)
摘要:给你m个字符串,让你构造一个字符串,包含所有的m个子串,问有多少种构造方法。如果答案不超过42,则按字典序输出所有可行解。 由于m很小,所以可以考虑状压。 首先对全部m个子串构造出AC自动机,每个节点有一个附加属性val[u]代表结点u包含的子串集合。 设dp[l][S][u]为长度为l,包含子串集 阅读全文
posted @ 2019-01-31 21:55 jrltx 阅读(455) 评论(0) 推荐(0)