
字符串哈希
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【LOJ6182】说无可说(字符串哈希)(爆搜)
传送门题解:爆搜,用哈希求LCP跳过两个相同的部分。感觉复杂度很迷。。。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;using ull=unsigned long long;...原创 2019-11-04 09:17:08 · 331 阅读 · 0 评论 -
【BZOJ5084】hashit(后缀平衡树)(哈希)
传送门题解:如果我们能够搞出后缀数组,显然我们考虑维护一下ht数组就行了。直接上后缀平衡树,每次找到前驱后继,然后直接算LCP即可。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;...原创 2019-10-10 09:47:58 · 290 阅读 · 0 评论 -
【CF613E】Puzzle Lover(哈希)(DP)
传送门CF今天好像挂了in queue了评测都有5页。下面的代码通过了校内OJ的测试,应该没什么问题,好像数据就是从CF上扒下来的来着题解:考虑合法的路径一定满足左边一个UUU,右边一个UUU,中间是蛇形。枚举左边合法的UUU和中间的每个格子进行转移,f[0/1][i][j]f[0/1][i][j]f[0/1][i][j]表示当前在(0/1,i)(0/1,i)(0/1,i)这个格子,匹...原创 2019-10-02 23:20:47 · 277 阅读 · 0 评论 -
【CF464E】The Classic Problem(最短路)(主席树)(哈希)
传送门题解;主席树维护二进制串跑Dijkstra,没了。注意找进位地方需要直接O(log2)O(log^2)O(log2),不然复杂度就假了调到自闭后直接重构,重构的一A了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs ...原创 2019-09-06 21:43:26 · 249 阅读 · 0 评论 -
【LOJ6681】yww 与树上的回文串(点分治)(AC自动机)(字符串哈希)(回文串broder理论)
传送门社论(题解):首先长剖重剖都考虑过了,并没有办法支持快速合并,边分更不用说了,权值在边上怎么边分怎么蛋疼。考虑点分,我们知道如果一个回文串过了重心,他要么就是重心延伸出去的回文前缀,要么它被重心分成两段,短的一定是长的后缀。很显然我们考虑用AC自动机求出这种后缀关系。那么现在问题变成了,代码:#include<bits/stdc++.h>#define ll ...原创 2019-07-18 19:23:22 · 1030 阅读 · 0 评论 -
【ZJOI2017】【BZOJ4877】【洛谷P5211】字符串(分块)(字符串哈希)(线段树)
洛谷传送门BZOJ传送门题解:写ZJOI真是作死的绝佳方式于是一个下午只写了一道题。首先是毒瘤至极的性质分析。对于字符串SSS的某个后缀vvv,我们称它是SSS的好后缀当且仅当存在某个字符串TTT,使得vTvTvT能够成为STSTST的最小后缀。通过一波莫名其妙让人吐血的分析我们可以知道SSS的好后缀最多只有O(log∣S∣)O(\log |S|)O(log∣S∣)个。引理:...原创 2019-07-15 19:15:41 · 238 阅读 · 0 评论 -
【JSOI2008】【BZOJ1014】【洛谷P4036】火星人(替罪羊)(字符串哈希)
洛谷传送门BZOJ传送门题解:求LCP显然直接哈希二分就行了,由于需要支持中间插入一个字符,需要用平衡树。由于这道题没有区间合并操作,而且好像有点卡FHQ_Treap和Splay,本着科学打脸观写了一发替罪羊跑到飞起。代码:#include<bits/stdc++.h>#define ll long long#define re register#define g...原创 2019-07-15 10:49:16 · 189 阅读 · 0 评论 -
2019.03.26【洛谷P5108】仰望半月的星空(单调栈)(Hash二分)
传送门解析:首先可以很显然的发现长度为nnn的答案肯定为111。考虑倒着处理。我们发现,在长度变短的过程中,有一些串逐渐变得相同,如果在某个长度lenlenlen,si≤sjs_i \leq s_jsi≤sj,且i<ji<ji<j,(其中sis_isi表示以iii开头,且长度为当前讨论长度的子串。)则jjj在之后都不可能成为任何位置的答案,因为总有...原创 2019-03-26 09:41:55 · 131 阅读 · 0 评论 -
2018.10.16【校内模拟】长者(主席树)(字符串哈希)
解析:其实题目已经提示了我们需要用什么数据结构没睡醒的zxyoizxyoizxyoi考场上打了30pts30pts30pts暴力就直接滚粗了。。。一听是正解主席树瞬间明白怎么做。。。由于每次修改只有一个字符,所以我们用主席树维护当前字符串的前缀hashhashhash。每次比较两个字符串的时候直接用hashhashhash找到第一个不相同的位置,然后比较这个位置就可以得到字典序了。单次比较...原创 2018-10-16 15:43:07 · 187 阅读 · 0 评论 -
2018.10.14【NOIP提高练习】01串(倍增)(字符串哈希)
传送门解析:其实我们直接处理出每个数向后倍增能够到哪个数,以及它倍增hashhashhash出来的值是多少就行了。然后直接倍增处理出每个位置迭代nnn次的01串的hashhashhash值就行了,把目标串也hashhashhash一下。代码...原创 2018-10-14 16:45:31 · 356 阅读 · 0 评论 -
2018.09.25【洛谷P4472】【BJWC2018】八维(字符串哈希)(倍增)
传送门解析:以后再也不把一个变量名当成另一个的子串了。。。调了我好久。思路:显然这道题不哈希没法做。然而串长有1e91e91e9直接做显然不行。我们可以考虑倍增法,将所有长度为2kk2^{kk}2kk字符串的哈希值都预处理。然后倍增得到长度为KKK的字符串。由于八个方向之间的计算互不影响,所以我们分开算八次。代码:#include<bits/stdc++.h>...原创 2018-09-25 20:17:44 · 622 阅读 · 0 评论