hash
DZYO
Never stop
展开
-
BJ模拟:相似子串(树链剖分+hash)
传送门 题解: 维护26个字母的哈希,差值形如GkGkG^k,判断kkk是否只有一个即可。 代码: #include <bits/stdc++.h> #include <tr1/unordered_map> using namespace std; typedef long long LL; typedef pair <int,int> pii; t...原创 2017-04-01 09:22:25 · 413 阅读 · 0 评论 -
Codeforces Round #439 (Div. 2) E:The Untended Antiquity(Hash+二维树状数组)
传送门题意: 给一个n∗mn*m的网格,每次可以选定一个矩形,在他周围放置一个障碍(围栏),或者清楚一个障碍,障碍之间不相交,支持任意时刻询问两点是否被隔开。题解: 首先矩形不相交可以知道两点如果不能互相到达一定是在不同的障碍里,考虑对每个障碍赋一个Hash值,用二维树状数组差分维护,查询直接查前缀和就好了。#include<bits/stdc++.h> using namespace std;原创 2017-10-07 09:20:11 · 459 阅读 · 0 评论 -
BZOJ4337: [BJOI2015] 树的同构(Hash)
BZOJ4337原创 2017-10-06 16:17:56 · 495 阅读 · 0 评论 -
poj2505:A multiplication game(Hash)
传送门题意: 给一个n(n≤4294967295)n(n\le 4294967295 ),每次从1开始轮流乘2 92~9中间一个数,最先超过nn的获胜,求谁赢。题解: 好像大家都是用的不太严谨的做法。。因为层数是log\log级别,用SG函数+记忆化搜索即可。#include<cstdio> #include<iostream> #include<cstring> #include<string原创 2017-12-21 20:31:25 · 187 阅读 · 0 评论 -
BJ模拟:Period on tree(Hash)
传送门 题解: 一个数ddd是iii循环节,则任何(dj)|i(dj)|i(dj)|i都是循环节,我们只需要试除每一个因子判断循环节是否为其约数即可。 判断用哈希+树状数组,注意预处理逆元,时间复杂度O(nlog2n)O(nlog2n)O(n\log^2 n)。 #include <bits/stdc++.h> #include <tr1/unordered_map...原创 2018-04-11 16:09:52 · 165 阅读 · 0 评论 -
BZOJ4650: [Noi2016]优秀的拆分(Hash/SA)
传送门 题解: 问题首先转化为每个位置向前和向后的square串个数的乘积和。 处理square串有nlognnlognn \log n做法: 首先枚举square串AAAAAA的长度的一半LLL(也就是AAA)的长度,然后square串必然经过两个相邻关键点,我们对于相邻两个串求lcs和lcp即可知道哪些位置是合法的,然后差分一下就行了。 用后缀数组维护lcp,lcs,时间复杂度O(...原创 2018-05-12 11:17:57 · 256 阅读 · 0 评论 -
Codechef:Counting The Important Pairs/TAPAIR
传送门 题解: 一定割一条树边,然后分类讨论即可。 注意两条被环覆盖的树边同时被删除合法当且仅当覆盖他们的环边集合相同,这个可以hash。 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int RLEN=1<<18|1; inline char nc() { stati...原创 2018-10-12 16:29:20 · 200 阅读 · 0 评论 -
UOJ#433. 【集训队作业2018】串串(循环串/回文串)
传送门 题解: 这道题主要用到的几个性质(具体证明可以看题解): 1.弱双回文串SSS的某个双回文划分ababab,满足aaa是SSS的最长回文前缀,或者bbb是SSS的最长回文后缀。 2.弱双回文串SSS若有两个弱回文划分,则SSS为整周期串。 3.弱双回文串SSS的周期为ttt,则其有∣S∣t\frac{|S|}{t}t∣S∣个不同的弱回文划分。 我们先计算本质不同的双回文串划分,然后减去算...原创 2018-11-27 20:26:49 · 1379 阅读 · 1 评论