[ABC284F] ABCBAC(字符串哈希)
思路
这里我们要注意以下几点:
- 字符串哈希自然溢出(\(\pmod 2^64\))会被卡,会\(WA~5\)个点
- 注意有模数的时候不要用\(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(字符串哈希)的更多相关文章
- HDU 1880 魔咒词典(字符串哈希)
题目链接 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一 ...
- 洛谷P3370 【模板】字符串哈希
P3370 [模板]字符串哈希 143通过 483提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 看不出来,这题哪里是哈希了- 题目描述 如题,给定N个字符串(第i个 ...
- HDU2594 Simpsons’ Hidden Talents 字符串哈希
最近在学习字符串的知识,在字符串上我跟大一的时候是没什么区别的,所以恶补了很多基础的算法,今天补了一下字符串哈希,看的是大一新生的课件学的,以前觉得字符串哈希无非就是跟普通的哈希没什么区别,倒也没觉得 ...
- LA 6047 Perfect Matching 字符串哈希
一开始我用的Trie+计数,但是不是计多了就是计少了,后来暴力暴过去的…… 看了别人的代码知道是字符串哈希,但是仍有几个地方不理解: 1.26^500溢出问题 2.没考虑哈希碰撞? 跪求指点! #in ...
- AC日记——【模板】字符串哈希 洛谷 3370
题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...
- 从Hash Killer I、II、III论字符串哈希
首先,Hash Killer I.II.III是BZOJ上面三道很经典的字符串哈希破解题.当时关于II,本人还琢磨了好久,但一直不明白为啥别人AC的代码都才0.3kb左右,直到CYG神犇说可以直接随机 ...
- 【NOIP模拟】Grid(字符串哈希)
题目背景 SOURCE:NOIP2016-RZZ-1 T3 题目描述 有一个 2×N 的矩阵,矩阵的每个位置上都是一个英文小写字符. 现在需要从某一个位置开始,每次可以移动到一个没有到过的相邻位置,即 ...
- 洛谷 P3370 【模板】字符串哈希
洛谷 P3370 [模板]字符串哈希 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的 ...
- cf_514C(字符串哈希)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=121897#problem/G Watto and Mechanism Time ...
- 洛谷 P3370 字符串哈希 (模板)
<题目链接> <转载于 >>> > 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共 ...
随机推荐
- vue项目前台带表格的页面,让表格根据屏幕大小自适应高度,小屏幕时不出现多个滚动条
参见馆藏库房系统, 右侧整体结构一般如下 <el-container class="ml10 mr10 br7 bgw"> <el-main> // el- ...
- MVC对session或cookie保存的值在js中做处理
在cshtml中保存数据 eg: @Html.Hidden("sessionUserName", Session["userName"]) @Html.Hidd ...
- TypeScript 合并以及删除数组数据
1.添加 concat() 2.删除(替换) splice() array.splice(index,int,any) index 是 array数组起始位置的index(从0开始) int是操作从i ...
- 实时平台-Flink篇
Flink任务统一通过实时平台统一管理的好处不用多说,这里简单介绍下实时平台-Flink模块的功能以及实现. 主要分为两大块 一.任务管理 任务管理主要包括任务的提交.暂停.下线.重启.历史版本回滚. ...
- webpack打包分析webpack-bundle-analyzer 打包文件分析工具
最近需要减少项目打包后的文件(bundle)的大小,那么首先需要了解bundle的构成. 目前我已知的方法有两种: 利用webpack-bundle-analyzer插件 利用webpack官方提供的 ...
- java 操作excel
需要引入的包 import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.HorizontalAlignmen ...
- swagger接口测试
导入依赖:<!-- swagger start --><dependency> <groupId>io.springfox</groupId> < ...
- PLC入门笔记10
梯形图电路之顺序控制 顺序控制功能图 顺序控制功能图的梯形图表达 编程原则 实例分析 SMo0.1西门子首次扫描时为ON,常用作初始化脉冲 这是台达的 这是优控的..
- Java (新)将Excel数据读取到ListMap
Java (新)将Excel数据读取到ListMap Maven依赖: pom.xml <!-- excel --> <dependency> <groupId>o ...
- 对Java要学东西的认识 (一点点javascript见解)
JavaScript是一种脚本语言,它采用小程序段的方式实现编程.像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程.它的基本结构形式与C.C++.VB十分类似. ...