zoukankan      html  css  js  c++  java
  • 「BalticOI 2020」病毒

    AC自动机+DP最短路转移

    怎么说呢,挺套路的,也不是太难,但是一上手会被大量的信息淹没思路,还是要注意关注主要信息,不要被一些细节卡住

    由于抗体是要在基因序里面出现过,那么考虑把抗体的序列检出AC自动机

    然后是经典套路要设在AC自动机上从$j$点出发到$k$点的DP

    但是直接DP不好DP

    考虑一种突变表是如何计算的,是从前往后不断用单个数字进行扩展,那么这就提示我们记录每一个突变表的前缀和单个数字的信息

    那么给其标号,令单个数字的标号就是自己,以方便下文叙述

    那么有这样几种转移

    $dp[i][j][k]+dp[num][k][p]->dp[i+1][j][p]$,$num$为$i+1$号前缀的最后一个数字(相当于是往后填数字),注意这个转移不仅是要更新到数字的时候需要转移,更新到某一个前缀的时候也需要转移

    $dp[i][j][k]->dp[num][j][k]$,$i$为一个完整的突变表,$num$为这个突变表所形成的数字

    $dp[num][j][k]->dp[i][j][k]$,$i$为突变表的第一个前缀,$num$为第一个数字

    然后转移即可

    代码

  • 相关阅读:
    知识加油站
    markdown 使用
    今日计划
    继续继续
    我回来了
    2020/5/8
    2020/5/10
    明天一定要学习了
    入驻博客园
    this is a test
  • 原文地址:https://www.cnblogs.com/huangchenyan/p/13893945.html
Copyright © 2011-2022 走看看