Processing math: 100%

随笔分类 -  哈希

摘要:传送门 因为 K 是固定的,所以我们可以预处理每一段 K 个的序列的哈希值,那么对于询问我们只要判断区间内是否有此哈希值即可 显然主席树维护,没了 阅读全文
posted @ 2019-09-13 11:28 LLTYYC 阅读(131) 评论(0) 推荐(0) 编辑
摘要:传送门 第一道插头 dp 由于讲不清楚所以假装各位早就会插头 dp 了 首先要的是一个闭合回路,所以可以用括号表示法表示状态,然后大力分类讨论 1. 没有右插头和下插头 那么我们可以啥也不干,或者加一个右插头和下插头 2. 只有下插头没有右插头 那么我们可以要把下插头继续延伸,可以向 阅读全文
posted @ 2019-09-04 08:20 LLTYYC 阅读(353) 评论(0) 推荐(0) 编辑
摘要:传送门 哈希 dfs 枚举所有节点,进入时哈希值加一个左括号,把所有儿子哈希值加入,退出时加一个右括号 因为儿子的顺序可以任意,所以要把儿子哈希值 sort 以后再顺序加入 因为根节点不确定,所以枚举所有节点作为根都算一遍哈希值 比较的时候同样把所有根的哈希值排序后顺序比较,只要有一个不同就 阅读全文
posted @ 2019-08-14 10:24 LLTYYC 阅读(140) 评论(0) 推荐(0) 编辑
摘要:传送门 考虑二分答案暴力 n4 枚举两个矩形右下角,如果能做到 O(1) 判断那么复杂度就可行 那么容易想到二维哈希,然后直接搞就好了... 二维哈希怎么做还是看代码吧... 阅读全文
posted @ 2019-08-14 08:06 LLTYYC 阅读(185) 评论(0) 推荐(0) 编辑
摘要:A. Hotelier 题意:有十个位置初始为 0,三种操作,找到左边第一个空位,变成 1,找到右边第一个空位,变成 1,把某个位置变成 0 直接模拟.. #include<iostream> #include<cstdio> #include<algorithm> #include 阅读全文
posted @ 2019-08-13 00:06 LLTYYC 阅读(214) 评论(1) 推荐(0) 编辑
摘要:传送门 如果没有修改的操作,很容易想到 后缀数组 倍增+哈希求 LCQ 如果有修改呢,哈希值就会发生改变,这时我们就要找一种数据结构来维护哈希值 emm...改字符和插入字符.... 显然可以用平衡树维护 所以总体思路就是用平衡树维护哈希值,然后倍增+哈希求LCQ 怎么维护哈希值很容易想到,直接看具 阅读全文
posted @ 2018-12-13 14:08 LLTYYC 阅读(147) 评论(0) 推荐(0) 编辑
摘要:传送门 哈希 首先要知道一个结论: 判断一个串s中 长度为k的串是不是循环节 的充分必要条件是: s[1]~s[len-k] = s[k] ~ s[len] 并且 len%k=0 怎么证明呢 如图: 显然红色的串=s1(因为s[1]~s[len-k] = s[k] ~ s[len]) 同样s1=s2 阅读全文
posted @ 2018-09-13 16:24 LLTYYC 阅读(160) 评论(0) 推荐(0) 编辑
摘要:传送门 哈希 or Manacher 首先有一个很显然的结论 对于一个回文串s 每次从s的中心开始向左右扩展一步 每次扩展的串一定都是回文串 如 s=abccba 从s的中心左右扩展一步得到 cc 扩展两步得到 bccb 扩展三步就得到了 abccba = s 所以如果我们枚举中心 向左右扩展,找到 阅读全文
posted @ 2018-09-13 13:35 LLTYYC 阅读(185) 评论(0) 推荐(0) 编辑
摘要:传送门 哈希表 枚举子串长度 k 把每个子串的哈希值加到哈希表里 用哈希表判重 因为子串可以反转 所以要两个哈希 一个从前往后,一个从后往前 复杂度为O(n + n/2 + n/3+ ... + n/n) 约等于 O(n ln n) 但是每次长度k更新都要清空哈希表 非常耗时(只有60分) #inc 阅读全文
posted @ 2018-09-12 13:08 LLTYYC 阅读(227) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示