摘要: 之前就写过一遍,今天却写挂了,查了半天发现是数组名写错啦$qwq$ 观察到$K$很小,所以使得我们可以哈希(怎么什么都能哈希$qwq$)。我们把长度小于等于$50$的子串扔到哈希表里,并统计出现次数,注意每次合并和分离时,只加入或删除与断开点距离小于等于$50$的;因为其他子串长度太长,或是已经在前 阅读全文
posted @ 2019-06-10 21:32 LuitaryiJack 阅读(181) 评论(0) 推荐(1) 编辑
摘要: 注意到插入次数挺少的,于是每次暴力重构,然后哈希+二分 2019.06.10 阅读全文
posted @ 2019-06-10 21:25 LuitaryiJack 阅读(224) 评论(0) 推荐(1) 编辑
摘要: 好吧我觉得是脑子,别人觉得是套路$qwq$ 这道题相当于是求除了$u,v$两点互相连接,所连的点相同的点对$(u,v)$ 我们首先每个点一个随机权值,对于$u$点记为$w[u]$,然后记与$u$点相连的点的异或和为$hsh[u]$ 分类: 对于第一种情况,直接枚举每条边上的两点就行了;对于第二种情况 阅读全文
posted @ 2019-06-10 21:22 LuitaryiJack 阅读(153) 评论(0) 推荐(1) 编辑
摘要: 看见某大佬在做,决定补一发题解$qwq$ 首先跑出最大生成树(注意有可能不连通),然后我们要求的就是树上两点间路径上的最小边权。 我们用倍增的思路跑出来$w[u][j]$,表示$u$与的它$2^j$的祖先路径上的最小边权(其实是为了配合$lca$),然后求$lca$时顺便记一下最小边权。 码风清奇别 阅读全文
posted @ 2019-06-10 21:11 LuitaryiJack 阅读(127) 评论(0) 推荐(1) 编辑
摘要: 注意到这个在哈希时要考虑循环同构。。。所以哈希函数是$\sum a_i+\prod a_i$ 如果发现有哈希值相等的了就$ck$一下。 最后$ck$时可以用最小表示法的知识提高效率,,,先咕着。 2019.06.10 阅读全文
posted @ 2019-06-10 13:35 LuitaryiJack 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 这道题可以$O(nlogn)$,当然也可以$O(n)$做啦$qwq$ $O(nlogn)$的思路是枚举每个回文中心,通过哈希预处理出前缀和后缀哈希值备用,然后二分回文串的长度,具体的就是判断在长度范围内,前缀哈希值和后缀哈希值是否相等。 还有一个$Manacher$算法,可以在$O(n)$时间里解决 阅读全文
posted @ 2019-06-10 13:30 LuitaryiJack 阅读(214) 评论(0) 推荐(0) 编辑