题目大意:
要求构造一个串,使得这个串是由所给的串相连接构成,连接可以有重叠的部分。
思路分析:
首先用所给的串建立自动机,每个单词节点记录当前节点能够达到的最长后缀。
开始的时候想的是dp[i][j]表示长度为i,走到自动机的j节点的答案。
但是显然既然是可以重复覆盖的,那么每一个节点的dp值都并不是最优的,因为可以从一个地方截断去连接另外一个串。
所以正确姿势就是dp [i...
分类:
Web程序 时间:
2014-10-02 23:35:23
阅读次数:
362
题目大意:
给出很多个DNA串,每一个串的价值为1,最后给出一个长串,要你重新排列最后的串使之它所有的子串的权值和最大。
思路分析:
最先容易想到的思路就是搜!管她3721。。直接一个字符一个字符的码,然后在AC自动机上判断最后的权值。TLE哟。
然后发现搜过不去,那就dp咯。再容易想到的就是dp[i][a][b][c][d] 表示此时遍历AC自动机的节点在i,然后构成了a个A,b...
分类:
其他好文 时间:
2014-10-02 19:52:33
阅读次数:
329
题目大意:
给出的DNA序列有一个权值,请构造一个长度为I的DNA序列使得在这段DNA序列的权值最大。如果为负数就输出噼里啪啦。。。
思路分析:
构造序列就是在ac自动机上走,求最大要用到dp
dp[i][j][k] 表示现在构造到了长度 i 。此时的我们把当前字符放在j节点,并且满足了k状态。k是一个10位的2进制状态压缩。
注意这道题上有坑就是一个序列可能有多个权值。所以不能...
分类:
其他好文 时间:
2014-10-02 15:44:43
阅读次数:
173
题目大意:
修改文本串的上的字符,使之不出现上面出现的串。问最少修改多少个。
思路分析:
dp[i][j]表示现在 i 个字符改变成了字典树上的 j 节点。
然后顺着自动机一直转移方程。
注意合法与不合法。
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using namespace std...
分类:
其他好文 时间:
2014-10-01 19:51:21
阅读次数:
159
传送门DNA SequenceTime Limit: 1000MSMemory Limit: 65536KDescriptionIt's well known that DNA Sequence is a sequence only contains A, C, T and G, and it's ...
分类:
其他好文 时间:
2014-09-22 22:33:43
阅读次数:
276
Walk Through Squares
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 944 Accepted Submission(s): 277
Problem Description
On the beam...
分类:
其他好文 时间:
2014-09-18 14:51:34
阅读次数:
316
Rescue the Rabbit
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1412 Accepted Submission(s): 403
Problem Description
Dr. X is a biol...
分类:
其他好文 时间:
2014-09-18 14:50:54
阅读次数:
245
题意:给出n个字串表示“缺陷基因”,然后让求长度为m的基因(4^m个)中有多少个不带病。
题解:首先建立AC自动机,然后从每个节点开始选“ATGC”有四种往外转移的途径。
如:ACG,C这两个基因建一个ACauto,然后转移矩阵为下。
2 1 0 0 1
2 1 1 0 0
1 1 0 1 1
2 1 0 0 1
2 1 0 0 1
然后...
分类:
其他好文 时间:
2014-09-17 10:21:12
阅读次数:
202
题意:给你n个模式串,每个模式串有一个得分,让你构造出一个长度为N之内且分数最高的文本串;输出字典序列最小的。解题思路: AC自动机 + DP , 不过要输出字典序列最小,多开一个 一个三维字符串来辅助二维DP(新思路) , DP[i][j] ,表示到i位置状态为j的最大得分。解题代码: 1 //....
分类:
其他好文 时间:
2014-09-17 00:54:01
阅读次数:
429
题意:给你只包含‘A’,‘G’,‘T’,‘C’四个字母的n个模板串和1个文本串,问你文本串改变多少个字符就可以使得文本串中没有一个模板串解题思路:我们可以知道 dp[i][j] 为文本串到 第i 个字符 AC自动机状态为j的最少的变换次数(这里为什么要用AC自动机,因为end数组可以记录哪一个状态是...
分类:
其他好文 时间:
2014-09-15 22:44:49
阅读次数:
427