题目:http://acm.whu.edu.cn/land/problem/detail?problem_id=1572
题意: 有n个目标串,长度均小于15,(n
比赛的时候还以为是水题,其实是自己太水。这种题一般是AC自动机的中等题,本题也可以用KMP做,结合状压dp。
方法一:AC自动机
建完Trie树后,就是跑一遍dp,注意单词节点要 |=(1
dp过程: 用...
分类:
其他好文 时间:
2015-08-18 22:42:45
阅读次数:
226
题目链接:Lost's revenge
解析:n个模式串,一个目标串。问目标串通过任意次交换字符最多能包含的模式串个数。(允许重叠)
字符最长是40
只需要记录ACGT出现的次数。
如果使用5维数组,显然超内存了。
假设ACGT的总数分别为num[0],num[1],num[2],num[3]
那么对于ACGT的数量分别为ABCD的状态可以记录为: (网上大神讲的...
分类:
其他好文 时间:
2015-08-18 12:04:35
阅读次数:
145
题目链接:DNA repair
解析:给出n个致病DNA序列,给一段DNA片段,问最少修改多少个碱基才能修复这段DNA序列中的所有致病序列。
AC自动机 + DP。
将n个致病DNA序列构成一个自动机。
令DP[i][j]表示长度为i走到节点j是所需改变的最少个数。
状态转移时,枚举下一步所有可能的碱基,然后判断该碱基是否达到匹配状态,若能,则安全转移,继续枚举下一个碱基;否则在...
分类:
其他好文 时间:
2015-08-17 14:11:35
阅读次数:
172
题目链接:Ring
解析:m个有价值的串,字符串s在字符串str中的价值 = s在str中出现的次数 × s的价值。问价值最大的长度为n的串是什么。
本题需要输出字典序最小的
在DP的时候开一个数组记录结果即可。
AC代码:
#include
#include
#include
#include
#include
using namespace std;...
分类:
其他好文 时间:
2015-08-15 18:20:36
阅读次数:
156
我实在是太弱了。。。不滚粗只能刷BZOJ了。。。这里来记录每天刷了什么题吧。2015-8-13: 正式开始! 1030[JSOI2007]文本生成器 | ac自动机+DP 1042 [HAOI2008]硬币购物 | 容斥原理+背包 1045 [HAOI...
分类:
其他好文 时间:
2015-08-13 13:56:07
阅读次数:
123
分析:参考别人的搞。
1、AC自动机:
使用AC自动机来压缩路段,如禁掉的路段是1->2->3,那么插入字符串(123) ,注意点只有1~50,所以0~50用ASCII 压缩成字符串即可。
这样就能够完成禁止路段的在线状态转移。
2、DP部分:
两点之间的最短路。dp[i][j]表示在地点i,当前字符是j的状态。
初始化:fill(&dp0][0],&dp[maxn-1][maxp-1...
分类:
其他好文 时间:
2015-06-08 10:00:49
阅读次数:
119
DNA repair
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 5877
Accepted: 2760
Description
Biologists finally invent techniques of repairing DNA that conta...
分类:
其他好文 时间:
2015-06-07 23:39:11
阅读次数:
259
题意:
给你n个串,求长度为l的串包含n个串个数的期望。
思路:
自动机dp[i][j][k] 长度为i在节点j状态为k的概率。
然后遍历一遍求期望。
代码:
#include"cstdlib"
#include"cstdio"
#include"cstring"
#include"cmath"
#include"queue"
#include"algorithm"
#include"...
分类:
其他好文 时间:
2015-05-14 08:41:44
阅读次数:
129
题目链接:BZOJ - 3530题目分析明显是 AC自动机+DP,外加数位统计。WZY 神犇出的良心省选题,然而去年我太弱..比现在还要弱得多..其实现在做这道题,我自己也没想出完整解法..就想出了个 O(l^3) 的做法:完全按照数位统计的思想来,先统计长度不足 len 的数字的合法种类数,这个枚...
分类:
其他好文 时间:
2015-04-26 12:21:23
阅读次数:
241
题意: 给出n个串,求任意长度为m的字符串包含串的个数的期望。(n#include #include #include #include using namespace std;const int SD = 26;const int MAXL = 1000;struct Tire { int...
分类:
其他好文 时间:
2015-04-21 00:08:02
阅读次数:
204