思路

这里我们要注意以下几点:

  1. 字符串哈希自然溢出(\(\pmod 2^64\))会被卡,会\(WA~5\)个点
  2. 注意有模数的时候不要用\(unsigned\ long \ long\)类型

代码

#include <iostream>
using namespace std;
typedef long long LL;
const int N = 2000010,BASE = 131,MOD = 998244353;
int n;
char s[N];
LL p[N],h1[N],h2[N];
LL query1 (int l,int r) {
return ((h1[r] - h1[l - 1] * p[r - l + 1]) % MOD + MOD) % MOD;
}
LL query2 (int l,int r) {
return ((h2[l] - h2[r + 1] * p[r - l + 1]) % MOD + MOD) % MOD;
}
int main () {
scanf ("%d%s",&n,s + 1);
p[0] = 1;
for (int i = 1;i <= 2 * n;i++) {
p[i] = p[i - 1] * BASE % MOD;
h1[i] = (h1[i - 1] * BASE + s[i] - 'a' + 1) % MOD;
}
for (int i = 2 * n;i >= 1;i--) h2[i] = (h2[i + 1] * BASE + s[i] - 'a' + 1) % MOD;
for (int i = 1;i <= n + 1;i++) {
if (query1 (1,i - 1) == query2 (n + 1,n + i - 1) && query1 (n + i,2 * n) == query2 (i,n)) {
for (int j = n + i - 1;j >= i;j--) putchar (s[j]);
printf ("\n%d",i - 1);
return 0;
}
}
puts ("-1");
return 0;
}

[ABC284F] ABCBAC(字符串哈希)的更多相关文章

  1. HDU 1880 魔咒词典(字符串哈希)

    题目链接 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一 ...

  2. 洛谷P3370 【模板】字符串哈希

    P3370 [模板]字符串哈希 143通过 483提交 题目提供者HansBug 标签 难度普及- 提交  讨论  题解 最新讨论 看不出来,这题哪里是哈希了- 题目描述 如题,给定N个字符串(第i个 ...

  3. HDU2594 Simpsons’ Hidden Talents 字符串哈希

    最近在学习字符串的知识,在字符串上我跟大一的时候是没什么区别的,所以恶补了很多基础的算法,今天补了一下字符串哈希,看的是大一新生的课件学的,以前觉得字符串哈希无非就是跟普通的哈希没什么区别,倒也没觉得 ...

  4. LA 6047 Perfect Matching 字符串哈希

    一开始我用的Trie+计数,但是不是计多了就是计少了,后来暴力暴过去的…… 看了别人的代码知道是字符串哈希,但是仍有几个地方不理解: 1.26^500溢出问题 2.没考虑哈希碰撞? 跪求指点! #in ...

  5. AC日记——【模板】字符串哈希 洛谷 3370

    题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...

  6. 从Hash Killer I、II、III论字符串哈希

    首先,Hash Killer I.II.III是BZOJ上面三道很经典的字符串哈希破解题.当时关于II,本人还琢磨了好久,但一直不明白为啥别人AC的代码都才0.3kb左右,直到CYG神犇说可以直接随机 ...

  7. 【NOIP模拟】Grid(字符串哈希)

    题目背景 SOURCE:NOIP2016-RZZ-1 T3 题目描述 有一个 2×N 的矩阵,矩阵的每个位置上都是一个英文小写字符. 现在需要从某一个位置开始,每次可以移动到一个没有到过的相邻位置,即 ...

  8. 洛谷 P3370 【模板】字符串哈希

    洛谷 P3370 [模板]字符串哈希 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的 ...

  9. cf_514C(字符串哈希)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=121897#problem/G Watto and Mechanism Time ...

  10. 洛谷 P3370 字符串哈希 (模板)

    <题目链接> <转载于 >>>  > 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共 ...

随机推荐

  1. js实现大文件上传——分片上传方法

    当前端在开发过程中遇到上传文件需求,如果是上传头像.图片小文件之类的,可以正常按上传流程处理.但是当遇到上传大文件需求时,几个G或者十几个G,那么需要将这么大的文件分割成许多小片段分别上传,这种实现思 ...

  2. 关于el-dialog弹窗组件关闭报错事件

    以下写法,向父组件抛出关闭事件, (正常点击弹窗footer的关闭时没有报错,但是点击空白处及右上角的×号,就会报以上错误) 原因, close事件为已经关闭了弹窗后的事件,官方还给出了  befor ...

  3. [BOM]打包代码前,快速去除前端日志

    一般开发时使用console.log() 方法.于是可以在js文件的最开头加上: console.log = function(){}

  4. java使用array是copyof创建新长度数组

    Arrays.copyof() int[] copied = Arrays.copyOf(arr, 10); //10 the the length of the new array System.o ...

  5. MySQL 打开慢查询 主从同步状态

    MySql 打开慢查询 set global log_output='FILE'; SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time ...

  6. Docker 查看某一时间段日志

    语法: docker logs [OPTIONS] CONTAINER Options: --details 显示更多的信息 -f, --follow 跟踪实时日志 --since string 显示 ...

  7. win10禁用自带键盘

    本文转载:https://blog.csdn.net/BiandanLoveyou/article/details/1163550041.不要相信网上说的那种在控制面板更换驱动,禁用什么设备,没卵用, ...

  8. stopping hbasecat:/tmp/hbase-root-master.pid:No such file or directory

    今天在新电脑上安装虚拟机的时候,尝试打开hadoop和hbase,hadoop打开没有问题,就是hbase关闭的时候报了stopping hbasecat:/tmp/hbase-root-master ...

  9. 由浇花工具开始IOT物联网平台之开始前言篇【1】

    在2020年时,突然有个想法,就是做个浇花工具,因为平时喜欢养花,有时忘记浇花,有时感觉手动浇花太麻烦,所以做个这个小玩意,是用.NET 开发的WinForm小程序,来控制单片机,带动水泵浇花,还可以 ...

  10. freeswitch开启https,wss

    1.sip.js配置访问wss://域名:7443 2.freeswitch配置certs,使用cat   .pem .key >wss.pem,合成wss证书.需重启freeswitch 3. ...