`
huobengle
  • 浏览: 860282 次
文章分类
社区版块
存档分类
最新评论

USACO Section 3.1 Contact - AC自动机..

 
阅读更多


赤果果的AC自动机~并且比较阉割~比完整的AC自动机好写多了..

 首先构造一个完全二叉树..根据题目要求构造13层..根节点为1,根的左孩子为2,右孩子为3..依次类推..那么一个节点P的父亲为P/2...左孩子为P*2...右孩子为P*2+1..所以整棵树用一维数组来存就okl了...这棵树转化为字典数..可以看成..1是超级节点..2是'0'...3是'1'..4是'00'..5是'01'..6是'10'..7是'11'..依次类推...

 构造Fail指针很方便~~初值: father[1]=0 , father[2]=father[3]=1 然后一个for循环就可以了...

 AC自动机做好后就边读边做匹配了~~计数器不仅是当前指针的位置++...其所有的father再father等等的也都++...当所到达的层数大于13时那么指针就不下去就是~~

输出有点恶心...我WA了6次有5次是输出的问题~这个~~~根据题目和数据自己调调吧~~

Program:



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics