摘要: ac自动机+bit 很早以前就做过这道题了,再做一遍。 构建ac自动机的话就是模拟一下就可以了,然后就是如何统计答案。 这里巧妙地利用了fail树的性质,fail树是指当前在trie上从根到这个节点的路径,也就是某个单词的前缀,这个单词的前缀的后缀能够匹配上另一个单词的前缀,于是就把fail指针连向 阅读全文
posted @ 2017-07-22 18:24 19992147 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 期望dp 首先如果k=n的话,那么我们从后往前,只要看到两者的灯就关上,因为如果当前一个灯没关上,那么之后不可能关上,一个灯只能由自己倍数控制,所以这样我们就计算出了需要操作的次数,如果这个次数<=k,直接把这个步数乘上阶乘就可以了。 考虑期望的部分,设f[i]为当前状态下还需要操作i次结束的期望步 阅读全文
posted @ 2017-07-22 16:05 19992147 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 状压dp 预处理每个状态的初始值,枚举子集就行了 #include<bits/stdc++.h> using namespace std; const int N = 18, inf = 1000000010; int W, n; int t[N], w[N], sumw[1 << N], sumt 阅读全文
posted @ 2017-07-22 12:03 19992147 阅读(151) 评论(0) 推荐(0) 编辑