
【算法】哈希
文章平均质量分 86
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ4754】【JSOI2016】独特的树叶
【题目链接】点击打开链接【思路要点】计算A树每个点为根时树的哈希值,存入一个哈希表(或Map)中。枚举去掉的叶子,在哈希表中查询去掉一个叶子后B树的哈希值是否存在即可。注意树的哈希值最好和子树大小相关联,否则容易出现大小不同的子树哈希值相同。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const ...原创 2018-04-14 14:59:31 · 391 阅读 · 0 评论 -
【BZOJ4943】【UOJ315】【NOI2017】蚯蚓
【题目链接】BZOJUOJ【思路要点】先说做法:用链表模拟蚯蚓的队列。对于每一个1号操作,计算所有新增的,长度在50以内的子串的哈希值,并加入哈希表中。对于每一个2号操作,计算所有被切断的,长度在50以内的子串的哈希值,并在哈希表中除去。对于每一个3号操作,计算每个子串的哈希值,并在哈希表中找到它们的出现次数,并相乘得到答案。显然,2号操作的总复杂度为\(O(CK^2)\),3号操作的总复杂度为\...原创 2018-05-30 20:32:43 · 410 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 099 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】Minimization【思路要点】显然我们每次操作的区间内都会包含1。因此\(Ans=1+\lceil\frac{N-K}{K-1}\rceil\)。时间复杂度\(O(1)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;tem...原创 2018-06-25 15:01:40 · 852 阅读 · 0 评论 -
【LOJ2572】「ZJOI2017」字符串
【题目链接】点击打开链接【思路要点】分块维护前缀哈希值,则我们可以做到 O(N)O(\sqrt{N})O(N) 修改, O(LogN)O(LogN)O(LogN) 查询两个后缀的 LcpLcpLcp 。用线段树维护子串,记录在原串中对应的范围,以及可能成为最小后缀的起始点集。一个显然的事实是,考虑不断向字符串后方添加字符的过程,令当前字符串已有 kkk 位,考虑 i&...原创 2019-06-21 20:03:01 · 784 阅读 · 1 评论