摘要: 在虐各种最长公共子串、子序列的题虐的不耐烦了之后,你决定反其道而行之——被它们虐。 操作一:对A,B分别建SAM,暴力BFS。 操作二:对B建序列自动机或SAM,A在上面暴力匹配。 操作三:对A,B建序列自动机,暴力匹配。 操作四:对B建序列自动机,在自动机上DP。 上面的我一句也看不懂,对不起我重 阅读全文
posted @ 2018-10-31 19:25 HocRiser 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 先发掘性质: 1.xor和gcd均满足交换律与结合率。 2.前缀gcd最多只有O(log)个。 但并没有什么数据结构能同时利用这两个性质,结合Q=10000,考虑分块。 对每块记录这几个信息: 1.块内所有数的gcd与异或和。 2.将块内所有前缀异或和放入一个数组排序。 查询时从前往后遍历每个块: 阅读全文
posted @ 2018-10-31 11:52 HocRiser 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 看到数据范围就大概只能想到这一种做法了吧。 首先实际上是每个点的权值为v[i]=c[i]+son[i],然后删除一个点就是v[fa[i]]+=v[i]-1。 从下往上贪心删,每次将节点的所有儿子按权值排序,从小到大能删就删,这样一定最优。 感性证明一下“若因为删了某个点而使祖先无法被删去,而删这个点 阅读全文
posted @ 2018-10-31 08:41 HocRiser 阅读(171) 评论(0) 推荐(0) 编辑