Advertisement

AcWing 1053. 修复DNA的题解(状态机DP;AC自动机)

阅读量:

AcWing 1053. 修复DNA
通过应用ac自动机构建状态机,从而实现状态机DPS的设计。

复制代码
    #include<bits/stdc++.h>
    
    using namespace std;
    
    const int N = 1010;
    
    int tr[N][4], dar[N], q[N];
    int n, m;
    int f[N][N];  //f[i][j]表示长度为i的字符到达第j个字符的最小步数
    int get_num[128];  // 数组优化get
    char str[N];
    int ids;
    int ne[N];
    
    void insert(){
    	int p = 0;
    	for(int i = 0; str[i]; i ++ ){
    		int t = get_num[str[i]];
    		if(!tr[p][t]) tr[p][t] = ++ ids;
    		p = tr[p][t];
    	}
    	dar[p] = 1;  //标记病毒结尾 
    } 
    
    void build(){

全部评论 (0)

还没有任何评论哟~