摘要: 解题思路: 首先我们可以发现: 1.若两个字符串A、B不相等,且它们的公共前缀为S,则它们的比较次数为:2 * len(S) + 1; 2.若两个字符串相等,设为A,则它们的比较次数为 2 * ( len(A) + 1 ) //注意考虑结束符'\0' 那么我们可以建立前缀树,在向前缀树中插入字符串的 阅读全文
posted @ 2016-11-09 11:52 kiraa 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 解题思路: 令d(i)表示从字符i开始的字符串(即S[i...L])的分解方案数。 则状态转移方程: d(i) = sum{d(i+len(x)) | x为S[i..L]的前缀} 阅读全文
posted @ 2016-11-09 11:37 kiraa 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 解题思路: 将矩阵每一行建立一棵线段树,进而变成一维问题求解。注意数组要开 4*N 代码如下: 阅读全文
posted @ 2016-11-09 11:28 kiraa 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 以上代码思路详见白书即(刘汝佳《算法竞赛经典训练指南》)第三章线段树部分,需要注意的是: 1.set操作时需要将该结点add标识清除 2.pushdown操作以及maintain操作的位置 3.其他方面的问题详见代码 阅读全文
posted @ 2016-11-09 11:13 kiraa 阅读(3221) 评论(0) 推荐(0) 编辑