
hash
gjghfd
这个作者很懒,什么都没留下…
展开
-
bzoj3207--Hash+主席树
题目大意:给定一个n个数的序列和m个询问(n,m思路:把所有连续的k个数字hash一下,然后扔进主席树,询问时在主席树中查询就可以了。注意(坑)点:1、hash值要用unsigned long long存2、如果直接求l+r>>1会爆,所以要改成(l>>1)+(r>>1)+(l&r&1)3、Yes和No是反的。。。代码: 1 #include 2 #include 3 #in原创 2017-05-26 16:41:20 · 191 阅读 · 0 评论 -
codeforces464E The Classic Problem -- 最短路+主席树+Hash
题目大意:求ss到tt的最短路,边权为2xi,xi≤1052^{x_i},x_i\leq10^5。看Manchery的题解就可以了。原创 2017-07-06 16:59:19 · 559 阅读 · 0 评论 -
codeforces822E Liar -- DP+Hash
令fi,jf_{i,j}表示ss串前ii位分成jj块最多能匹配到tt的第几位。 对于fi,jf_{i,j},可以更新:fi+1,j=max(fi+1,j,fi,j)f_{i+1,j}=\max (f_{i+1,j},f_{i,j})fi+lcp,j+1=max(fi+lcp,j+1,fi,j+lcp)f_{i+lcp,j+1}=\max (f_{i+lcp,j+1},f_{i,j}+lcp)原创 2017-07-08 17:06:51 · 760 阅读 · 0 评论 -
Codechef Aug2017 #Walks on the binary tree -- 主席树+Hash
传送门每次答案增加的值就是 nn - 之前出现的数与 XX 的 LCPLCP 最大值。 而与 XX 的 LCPLCP 最大的点在 dfsdfs 序上与 XX 的距离最近。而在满二叉树上 XX 在 dfsdfs 上的位置就等于 XX 。 于是可以用 setset 维护所有出现过的点,加入 XX 时找 XX 两边最近的点更新答案。 每个点用主席树+hash维护。代码#include<set>#i原创 2017-08-29 16:51:53 · 401 阅读 · 0 评论 -
Codeforces452F Permutation -- 线段树 + Hash
假如不存在长度大于等于 33 的等差数列,那么对于第 ii 个数 aia_i , ai−ka_i-k 和 ai+ka_i+k 都在一定在 ii 的左边或右边。那么建一棵权值线段树,从左往右扫一次,判断一下 [x−maxk,x−1][x-max_k,x-1] 与 [x+1,x+maxk][x+1,x+max_k] 反转后 HashHash 值是否相等。#include<cstdio>#include原创 2017-10-05 14:35:31 · 276 阅读 · 0 评论 -
[ NOI2017 ] [ Hash 复杂度分析 ] BZOJ4943
将所有字符串哈希后存入哈希表,合并或分裂时暴力更新。 这样复杂度看上去是 O(nk2)O(nk2)O(nk^2) 的,实际上是 O(ck2+nk)O(ck2+nk)O(ck^2+nk) 。 证明: 显然要使复杂度更大,合并的 222 个队列的长度一定是 ≤k≤k \le k 的 假如使合并的队列长度为 SSS ,这样的队列只有 nSnSn\over S 个,复杂度为 nSS2=nSnSS2...原创 2018-03-06 11:41:34 · 323 阅读 · 0 评论