Hash
_Ark
这个作者很懒,什么都没留下…
展开
-
[Sdoi2013] [bzoj 3198] spring (hash+容斥原理)
题目描述 给出nnn个666维坐标,求有多少对点对满足恰好mmm个位置相等 1<=n<=1051<=n<=10^51<=n<=105 0<=k<=60<=k<=60<=k<=6原创 2018-11-29 22:52:24 · 205 阅读 · 0 评论 -
unordered_map初用
unordered_map,顾名思义,就是无序map,使用时可以当做STL的Hash表使用,时间复杂度可做到O(1)查询 在C++11前,使用unordered_map要像这样写: #include <tr1/unordered_map> //在unordered_map之前加上tr1库名 using namespace std::tr1; //加上命名空间 C++11: #incl...原创 2018-12-07 23:11:02 · 644 阅读 · 0 评论 -
BZOJ 4278: [ONTAK2015]Tasowanie (后缀数组 / 二分+hash)
直接归并,然后如果哪边的后缀字典序比较小就去哪边,然后就可以后缀数组 博客传送门… 但是本蒟蒻不会后缀数组 于是就hash后二分找相同的最长区间,然后比较后一个谁更小… 时间复杂度O(nlogn)O(nlogn)O(nlogn). 注意先在最后加一个极大值.因为如果一个序列A到末尾刚好与序列B的一段相等,那么一定是取B更优,因为B后面可能有更小的. hack数据 4 2 2 2 1 3 2 2 ...原创 2019-03-29 22:16:47 · 193 阅读 · 0 评论 -
BZOJ 2119: 股市的预测 (Hash / 后缀数组 + st表)
转博客大法好 自己画一画看一看,就会体会到这个设置关键点的强大之处了. CODE(sa) O(nlogn)→1436msO(nlogn)\to 1436msO(nlogn)→1436ms #include <bits/stdc++.h> using namespace std; typedef long long LL; template<class T>inline vo...原创 2019-03-31 22:38:33 · 211 阅读 · 0 评论 -
BZOJ 1692: [Usaco2007 Dec]队列变换 (后缀数组/二分+Hash)
跟BZOJ 4278: [ONTAK2015]Tasowanie一模一样 SA的做法就是把原串倒过来接在原串后面,O(nlogn)O(nlogn)O(nlogn)做后缀数组,就能O(1)O(1)O(1)够比较每个前缀和后缀谁的字典序小了. Hash二分也可以. CODE(SA) O(nlogn)O(nlogn)O(nlogn) #include<bits/stdc++.h> using...原创 2019-04-01 19:03:13 · 170 阅读 · 0 评论 -
BZOJ 2946 [Poi2000]公共串 (二分+Hash/二分+后缀数组/后缀自动机)
求多串的最长公共字串. 法1: 二分长度+hash 传送门 法2: 二分+后缀数组 传送门 法3: 后缀自动机 拿第一个串建自动机,然后用其他串在上面匹配.每次求出SAM上每个节点的最长匹配长度后,再在全局取最小值(因为是所有串的公共串)就行了. CODE #include<bits/stdc++.h> using namespace std; char cb[1<<15]...原创 2019-04-01 20:28:20 · 227 阅读 · 0 评论