#2 blacksnow@2009-05-09 01:10:00
11390
回复
删除
这道题目不是可以暴搜么?
将一部分(01字串的长度《=n Div 3)01字串转化为10进制,并且不可能连续出现三个相同字串..题目的范围才40...应该可以过...
#6 xxwzy@2009-05-15 05:09:00
11501
回复
删除
bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!bs打表!
#7 curimit@2009-05-16 00:20:00
11508
回复
删除
我用AC自动机A掉了。
由于长度是40,40/3=13
我们先可以把所有禁止出现的子串搜出来,最多有16000多个。
然后我们建一个AC自动机。
预处理出go[i,0]和go[i,1]表示在自动机第i个节点后键入0或1,转移到的自动机的节点编号。
如果go[i,0]或go[i,1]恰好是某个禁止子串的结尾,那么就令go[i,0]或go[i,1]等于-1
方程:
设f[n,i]表示长度为n,并且当前状态在自动机第i个节点时的方案数。
用f[n,i]的值更新f[n+1,go[i,0]]和f[n+1,go[i,1]]的值。
最后输出sigema{f[n,i]}(1<=i<=自动机节点数)