bzoj没有题面,题面在vijos。


所以说读入char再丢给string并不会慢…

短串扔到hash表里。
长串的前半部分复制一份,然后在上面跑,若长串的后半部分出现过,则答案加上后面的hash值的出现次数。

写了双hash+挂链表,因为写了指针,并且双hash常数大,所以TLE+MLE,还有莫名其妙的WA…………

自然溢出+map在vijos上就是过不了……T两个点,不过在bzoj还是能A的。

看题解有人写的在bool数组中若已被占用则往后跳…在bzoj实测表现和map差不多…vijos也是T两个点…

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;typedef unsigned long long ULL;
typedef long long LL;
const int SZ = 4000010;
const int base = 13331;string S1[SZ],S2[SZ];map<ULL,int> h;ULL hash[SZ],mi[SZ];ULL gethash(string s)
{ULL ans = 0;for(int i = 0;i < s.length();i ++)ans = ans * base + s[i] - 'a' + 1;return ans;
}ULL getstr(int l,int r)
{int len = r - l + 1;return hash[r] - hash[l - 1] * mi[len];
}char s[SZ];void read(char s[])
{memset(s,0,sizeof(s));int tot = 0;char a = getchar();for(;a < 'a' || a > 'z';a = getchar());for(;a >= 'a' && a <= 'z';a = getchar())s[tot ++] = a;
}int main()
{int n,m,len1,len2;scanf("%d%d%d%d",&n,&m,&len1,&len2);mi[0] = 1;for(int i = 1;i <= len1 + len2;i ++)mi[i] = mi[i - 1] * base;for(int i = 1;i <= n;i ++)read(s),S1[i] = s;for(int i = 1;i <= m;i ++)read(s),S2[i] = s;if(len1 < len2) swap(S1,S2),swap(n,m),swap(len1,len2);for(int i = 1;i <= m;i ++)h[gethash(S2[i])] ++;int len = (len1 + len2) >> 1;LL ans = 0;for(int i = 1;i <= n;i ++){for(int j = 0;j < len * 2;j ++)hash[j + 1] = hash[j] * base + S1[i][j % len] - 'a' + 1;ULL x = 0;for(int j = len;j < len1;j ++)x = x * base + S1[i][j] - 'a' + 1;for(int j = 1;j <= len;j ++){ULL y = getstr(j,j + len1 - len - 1);if(x == y){ULL a = getstr(j + len1 - len,j + len - 1);ans += h[a];}}}printf("%lld\n",ans);return 0;
}

【bzoj4084】[Sdoi2015]bigyration hash相关推荐

  1. 【BZOJ3994】[SDOI2015]约数个数和 莫比乌斯反演

    [BZOJ3994][SDOI2015]约数个数和 Description 设d(x)为x的约数个数,给定N.M,求   Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数 ...

  2. 【BZOJ3993】[SDOI2015]星际战争 二分+最大流

    [BZOJ3993][SDOI2015]星际战争 Description 3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战.在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进攻X军团的阵地 ...

  3. [BZOJ4084][Sdoi2015]bigyration hash

    听说单hash能过23333 于是乎hash乱搞一下就好了辣 然而map要TLE .... #include<cstdio> #include<algorithm> #incl ...

  4. 【bzoj4084】【sdoi2015】双旋转字符串

    题解 首先题中说了$n>=m$; 分成的循环串左右两边为本质相同的单循环串循环串,分别长为$l = \frac{n + m}{2} $; 所以$S$串的前$l$位为双循环串的一半$S1$,后一半 ...

  5. 【bzoj2081】[Poi2010]Beads Hash

    题目描述 Zxl有一次决定制造一条项链,她以非常便宜的价格买了一长条鲜艳的珊瑚珠子,她现在也有一个机器,能把这条珠子切成很多块(子串),每块有k(k>0)个珠子,如果这条珠子的长度不是k的倍数, ...

  6. 【java】分布式一致性hash算法

    1.概述 本文是视频 视频 的笔记 2. 一致性hash算法哪里用? 一般情况下如果我们的数据很多,一台机器装不下,我们一般会采用分布式缓存,但是因为是分布式,我们要解决3个问题 数据怎么存储到分布式 ...

  7. 【C++】字符串的 hash 值计算

      C++ 11 中新加入的容器 unordered_map 和 unordered_set 底层都是哈希表实现的,那么对于内置类型,肯定是可以自动计算出 hash 值的,但是对于像 pair< ...

  8. 【PHP】PHP实现Hash环/Hash一致性原理实现

    PHP实现Hash环/Hash一致性原理 Hash环可用于Redis机器集群.Mysql的分表操作,扩容时能对最大限度的减少损失 文章开头先引用大佬文章:什么是Hash环 class consisTe ...

  9. 【bzoj3994】[SDOI2015]约数个数和 莫比乌斯反演

    题目描述 设d(x)为x的约数个数,给定N.M,求   输入 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. 输出 T行,每行一个整数,表示你 ...

最新文章

  1. linux centos yum 报错 one of the configured repositories failed 解决方法
  2. Spring MVC 函数式编程进阶
  3. UA MATH567 高维统计I 概率不等式3 亚高斯性与亚高斯范数
  4. java的classpath是什么_JAVA初学者classpath设置情况是什么?
  5. 别“躺”着了,赶紧把「复盘」做起来
  6. 剑指offer二十二之从上往下打印二叉树
  7. 2018ACM/ICPC亚洲区域赛(焦作)F. Honeycomb
  8. Firefox 检测到该服务器正在将此地址的请求循环重定向。     此问题可能是因为禁用或拒绝 Cookie 导致。...
  9. WSL1 升级为 WSL2
  10. c++ map 修改value_哈希表:其实需要哈希的地方都能找到map的身影
  11. python附件发送到邮箱里_使用python将最新的测试报告以附件的形式发到指定邮箱...
  12. 那些html编辑器有代码片段6,VS Code 折腾记 - (6) 基本配置/快捷键定义/代码片段的录入(snippet)...
  13. 有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?
  14. php 126怎么设置发送邮箱验证码,邮箱发送验证码(示例代码)
  15. 使用Logisim软件实现一位全加器,四位串行加法器,四位并行加法器。
  16. GEE|影像可视化|导出分类结果图像
  17. win10 Administrator账户被禁用怎么办?
  18. [渝粤教育] 西北农林科技大学 国际贸易实务 参考 资料
  19. tornado源码分析(四)之future、gen.coroutine
  20. Android 布局 layout

热门文章

  1. 尤雨溪大大在 6 月 4 日的 Vue3.0 技术分享
  2. Python Opencv cv2提取图像中某种特定颜色区域(例如黑字白纸背景下的红色公章提取),并将纯色背景透明化
  3. 不管你学的是什么专业,你都应该多少懂些管理学的东西之【鳄鱼法则】【鲇鱼效应】...
  4. 乳腺仿体breast phantom的MATLAB实现及探讨
  5. 一缕黑暗中的火光-----------类图--------------优雅的建模语言
  6. C++11之防止类型收窄
  7. 深入解读 Spark 宽依赖和窄依赖(ShuffleDependency NarrowDependency)
  8. “超女民-主”?“画饼充饥”!
  9. 【ElementUI】el-upload 到底该怎么使用?记录有时上传图片会失败,有时上传成功又出现图片闪动的问题
  10. 新海诚动漫《天气之子》1080P 4K下载