poj 2778
           感觉trie图的构造跟状态图是天然的结合,它将剩余的指针指向正确的状态,然后就构造出一个关系图来了,
          对于这个关系图,有些点标记为非法点,有些点不是,像这道题,求只经过合法点的路径条数,在原来关系图的基础上,重新建图,非法点不连边即可,就可以矩阵乘法求出了
             


   3691

这题实在经典,决定记下来留个纪念。

自动机:时间是离散的(t=0,1,2……),在每一个时刻它处于所存在的有限个内部状态中的一个。对每一个时刻给予有限个输入中的一个。那么下一个时刻的内部状态就由现在的输入和现在的内部状态所决定。每个时刻的输出只由那个时刻的内部状态所决定。

可以看出自动机具有明显的阶段划分和无后效性,所以和动态规划有着紧密的联系。

就拿这题来说,AC自动机的内部状态由指向trie图的某节点的指针决定,那么本题的所有状态可由dp[i][j](dp[i][j]表示在AC自动机的指针指向标号为j的节点时,保证前i个字符不存在匹配的最少替换次数)决定。设计出了状态,剩下就简单了。如果第i个字符s[i]为c,那么j的下个状态k就可根据c和j算出来,这样就完成了dp[i][j]到dp[i+1][k]的状态转换。再经过层层递推后就可把答案算出来了。



hnu 10104

尽心dfs,其实只要找到一个环,就说明有无限长的了