今天看饶齐的题,总算是把静态的自动机模板搞明白了,包括里面的last数组和print函数,last数组实际上是fail的优化,是作为根节点的fail点,而print函数的递归,就是沿着last数组向上走的过程。对于这么两个模板,我目前的认识是动态模板利用指针,用一个节点建一个节点,节省空间资源但是new/malloc都要回收,而且一定程度上会比较费时;静态模板建好数组,直接往最大了建,空间占用是比较多的,但是数组的时间较快,典型的用空间换时间。对于我们acm的话,卡时间比卡空间严重得多,所以还是静态的好一点。而且后面还有自动机dp、后缀数组等,感觉dp的话,也是数组比较好转移。今天看的题中zoj3228是涉及到一个匹配串可不可以重叠匹配的问题,这个我昨天也一直在考虑,因为字典树上的kmp,肯定要考虑这方面的,是现在有了解决思路了。
20180130
最新推荐文章于 2019-01-30 13:31:15 发布