兔子与兔子

兔子与兔子
这题的话很好解,先预处理一下再暴力求值。
记我们选取的DNA序列为S,根据我们刚才提到的字符串Hash算法,设F[l]表示前缀子串S[1 ~ i]的Hash值,有F=[F-1]*131+(S[i]-"a"+1)于是可以得到任一区间[l,r]Hash值为F|r]-F|l-1]*131^{r-l+1}。当两个区间的Hash值相同时,我们就认为对应的两个子串相等。整个算法的时间复杂度为O(|S|+Q)。 ......  查看更多

「算进」[基构]HASH

首先,「算进」是什么?
就是《算法竞赛进阶》,大神写的书,一个蒟蒻怎么能不好好磕一下呢,于是就有了这第一篇文章。
[基构]是什么?
就是基础数据结构的意思呢,基础不扎实就要好好学基构。
从我最不好的地方开始学习,来Hash把! ......  查看更多

Snowflake Snow Snowflake

Snowflake Snow Snowflakes
这题的话就是明显可以用哈希表来做啦,对于两篇形状相同的雪花,那么他们的乘积也是一样的,但是又为了避免偶然,所以哈希函数的计算中增加了他们的和,Hash(x)=sum(x)+mul(x)这样就可以很好的做统计了。

 ......  查看更多