
hash
文章平均质量分 70
TA201314
这个作者很懒,什么都没留下…
展开
-
NOIP2014提高组复赛解题报告
Day1T1生活大爆炸版剪刀石头布:模拟,水;T2联合权值:树形DP,水;T3Flappy Birds:这道题我当时算时间复杂度算错了,O(nm^2)的时间复杂度给算成O(nm)了,所以根本就没想优化,以后①算时间复杂度的时候要小心一点了。其实正解也是很简单的,只是在直译式DP的基础上做了一点小优化。直译式DP:设f(i,j)为到达当前点的最小步数,则f(i,j)->f原创 2014-11-18 21:15:57 · 8768 阅读 · 1 评论 -
[spoj11482]Count on a trie 解题报告
一开始以为是AC自动机的题,发现一直不会求T的AC自动机。后来想到可以求S的sa,就发现简单多了! 我们可以dfs S,然后对于S中的一个节点处理它的询问。(二分+hash比较大小) 那么问题就在于怎么维护T的hash。本来想用可持久化块链,发现mle了。就只好学了下treap。 treap的话,如果把rank看成下标,把随机的值看成权值的话,其实就是一颗随机数列上的笛卡尔树。树高等于比前面的原创 2016-04-18 09:49:06 · 1166 阅读 · 0 评论 -
[bzoj2555]substring 解题报告
考虑用splay维护sa,每次比较的时候二分+hash。注意要在两端加-∞和+∞的点。 时间复杂度O((n+q)log2n+m)O((n+q)\log^2n+m)(n是数据总长度,m是询问总长度) 但是普通的hash的话需要用long long+除法运算,一个点需要跑6s。所以改成自然溢出,瞬间只需要2s了。。。(要是被卡了怎么办。。) 听说如果用重量平衡树维护的话可以做到O((n+q)log原创 2016-04-13 17:36:15 · 936 阅读 · 0 评论 -
强迫症 解题报告
本题的大意是判断一棵树是否是一棵轴对称树。 然后多组数据,= =少考虑了一种情况导致只有30。 hack点是重心不一定在对称轴上,如果有两个重心的话,就不是了。。(我明明想到了这种情况,但是想错了。。以为这种情况与横过来是等价的。) 具体做法就是找出重心来后随便hash(最好是用异或乱搞一下)。#include<cstdio>#include<cstring>#include<cmath>原创 2015-07-05 15:38:47 · 969 阅读 · 0 评论 -
[CODEVS1283]等差子序列解题报告
这真的是一道很神的题,但在CODEVS。。可以暴力过掉。。当然,在BZOJ上是不可以的。所以。。我还是看了看题解,题解是这样说的:一、一个基本的转化是将题目中的描述翻译为一个长度为3的等差子序列,即存在x,k,使得x-k与x+k在x异侧。二、我们先来看一个错误的贪心思路,因为是一个1~N的排列,所以我们可以把它们视为离散后的数据,首先我们将其按奇偶分开,奇数放一边,偶数放一边,这样就可原创 2014-12-01 21:06:40 · 1487 阅读 · 0 评论 -
[Vijos1898]学姐吃生鱼片 解题报告
这道题思路挺简洁的,但却绝对足够让我耳目一新了。一、题意描述学姐今晚想吃生鱼片, doc便领着她去吃啦. 但是怎么能这样轻易就让馋嘴的学姐吃到生鱼片呢!于是doc准备了一个"二维魔方".所谓 二维魔方, 可以被考虑为平面上 3X3 的方格, 里面不重复得填有 1~9 共9个数字.每一次可以对某一行或某一列向某一方向做轮换操作, 比如说, 如果第三列原来的原创 2015-01-03 16:54:03 · 1038 阅读 · 0 评论 -
[COGS902]乐曲主题
这个题一开始想的是hash+枚举长度+sort寻重O(N2log2N)≈50002∗12≈3∗108O(N^2log_2N)≈5000^2*12≈3*10^8,但是模一个数就WA了,模两个数就T了;卡得不行不行的。 问题在于,实际上长度显然是单调合法的(如果len行,则小于len一定行),所以我们可以变枚举为二分。(宏哥Orz) !!这也正是我没有想到的了,最近总原创 2015-03-29 07:47:13 · 813 阅读 · 0 评论 -
纵横填字游戏解题报告
题意描述:【问题描述】 这个题目要求你编写一个程序来解决一个纵横填字游戏。 这个游戏比我们在报纸上见到的通常的填字游戏要简单。游戏仅给出单词的起始位置,方面(横向或纵向)以及单词的长度。只要单词的长度正好,游戏中能填入任何一个来自词典的单词。 在游戏中单词相交处的字母必须相同,当然,任何单词只准使用一次。 思考一下以下这个游戏。原创 2014-12-10 21:19:08 · 3184 阅读 · 0 评论 -
[Miller-Rabin][CODEVS1702]素数判定2 解题报告
题面描述:判定一个数P∈[1,2^63-1]∩N是素数么。按照朴素的判定素数方法,至少也需要O(P^0.5)的,但这道题就是霸气到连这样的时间复杂度都过不了的地步。实在是不会做了,就学习了传说中的Miller-Rabin素数判定法。两个引理:①费马小定理:设p为质数,且不满足p|a,则a^(p-1)=a(mod p).证:又一个引理,若n与p互质,且a与p互质,则n原创 2014-12-28 21:42:39 · 1255 阅读 · 0 评论 -
[USACO]金发姑娘和N头牛 解题报告
这道题可以转化为Hash+差分序列模型,但我所要说的是在常数上的优化。考虑转化为差分序列时,我们在其左端点加上Y-X,在右端点的下一位加上Z-Y;并且对于所有牛都是一样的。所以我们交换两个牛的右端点,对答案不会有任何影响。那么我们干脆就把左右端点分开来考虑好了。有什么好处?考虑普通的hash,需要先排序再二分≈T(4Nlog(2N)+9N);而根据上述思想,我们完全可以做到排序+线性扫原创 2014-12-13 11:07:39 · 1875 阅读 · 0 评论 -
[bzoj4373]算术天才⑨与等差数列 解题报告
先来说一下傻逼的做法。 考虑如何约束等差数列这个条件,如果k=0,就是[最大值=最小值];否则就是区间中[相邻两数差的绝对值的gcd=k][(最大值-最小值)/(r-l)=k][区间中没有相同元素]。 gcd可以在O(log2n)O(\log^2n)的时间复杂度很容易搞出来,所以问题就在于怎么确定区间中没有相同元素。 显然,如果记每个位置下一个和它权值相同的位置在哪,那就转化成了求区间最小值的原创 2016-04-18 08:36:36 · 1338 阅读 · 0 评论