摘要: 和poj 1625一样,不同的是长度变长了 先考虑另外一个问题,给你一个有向图,从某个点出发走n步到其他任意点,问不同的走法。 对这个问题构造一个矩阵,matrix[i][j]表示从i到j有几条边,然后这个矩阵自乘n次就是答案。 再说这个问题, Trie图本身就是一个有向图,那么一个长度为n的字符串相当于从根节点沿着边走n步。。。所以和上面那个问题一样。。构造矩阵的时候要注意边不能有非法节点。 可以在构造矩阵时去掉非法节点的行和列来优化。。(这里我没去掉。。。 1 #include 2 #include 3 #include 4 #include 5 using name... 阅读全文
posted @ 2013-08-09 12:08 silver__bullet 阅读(956) 评论(2) 推荐(0) 编辑
摘要: 题意: 给你一个字典,还有一些非法串,利用字典中的字符组成长度为m的不含非法串的字符串,求方案数。解法: 坑了我一整天我擦。。。。 因为自动机本身就是一个状态转移图,所以在上面进行DP很好理解,dp[i][j]记录长度为i并且走到DFA中j节点的方案数。。 需要注意的是非法节点是不能走的,在建Trie图的时候也要注意,如果当前节点的fail节点是非法的,那么这个点也是非法的,因为这个串包含了某个非法串。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 con... 阅读全文
posted @ 2013-08-09 09:59 silver__bullet 阅读(463) 评论(0) 推荐(0) 编辑