【字符串哈希】bzoj3916 [Baltic2014]friends
枚举断点,哈希判断。
#include<cstdio>
using namespace std;
typedef unsigned long long ull;
ull hs,hs1,hs2,seeds[1000010],hsgoal;
int n;
int del=-1;
char s[2000002],s2[2000002];
int main()
{
seeds[0]=1;
for(int i=1;i<=1000009;++i) seeds[i]=seeds[i-1]*31;
scanf("%d%s",&n,s);
if(!(n&1)) {puts("NOT POSSIBLE"); return 0;}
for(int i=(n>>1)+1;i<n;++i)
hs=hs*31+(s[i]-64);
for(int i=1;i<=(n>>1);++i)
hs2=hs2*31+(s[i]-64);
if(hs2==hs)
{
del=0;
hsgoal=hs;
}
for(int i=1;i<=(n>>1);++i)
{
hs2-=((s[i]-64)*seeds[(n>>1)-i]);
hs1=hs1*31+(s[i-1]-64);
if(hs1*seeds[(n>>1)-i]+hs2==hs)
{
if(del!=-1&&hsgoal!=hs)
{
puts("NOT UNIQUE");
return 0;
}
else
{
del=i;
hsgoal=hs;
}
}
}
hs=hs1=hs2=0;
for(int i=0;i<(n>>1);++i)
hs=hs*31+(s[i]-64);
for(int i=(n>>1)+1;i<n;++i)
hs2=hs2*31+(s[i]-64);
for(int i=(n>>1)+1;i<n;++i)
{
hs2-=((s[i]-64)*seeds[n-1-i]);
hs1=hs1*31+(s[i-1]-64);
if(hs1*seeds[n-1-i]+hs2==hs)
{
if(del!=-1&&hsgoal!=hs)
{
puts("NOT UNIQUE");
return 0;
}
else
{
del=i;
hsgoal=hs;
}
}
}
if(del==-1)
puts("NOT POSSIBLE");
else if(del<=(n>>1))
{
for(int i=0;i<=(n>>1);++i)
if(i!=del)
putchar(s[i]);
puts("");
}
else
{
for(int i=(n>>1);i<n;++i)
if(i!=del)
putchar(s[i]);
puts("");
}
return 0;
}
【字符串哈希】bzoj3916 [Baltic2014]friends的更多相关文章
- 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个字符串中共 ...
随机推荐
- 简单瞎搞题(bitset的操作)
链接:https://www.nowcoder.com/acm/contest/132/C来源:牛客网 题目 一共有 n个数,第 i 个数是 xi xi 可以取 [li , ri] 中任意的一个值. ...
- MyBatis的SQL语句映射文件详解(三)----多参数传递的几种方式
1.单一基本类型参数(String,int等) 单一的基本类型参数,将对应语句中的parameterType的值与参数的类型相同.然后直接 用“#{参数名}” 来获取 java代码 //String类 ...
- Struts2 内建的验证规则
Struts2 内建的验证规则 conversion validator:转换验证器 date validator:日期验证器 double validator:浮点验证器 email validat ...
- SVG布局
http://www.w3cplus.com/html5/nesting-svgs.html
- 【BZOJ2742】【HEOI2012】Akai的数学作业 [数论]
Akai的数学作业 Time Limit: 10 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 这里是广袤无垠的宇宙这里 ...
- bzoj 2705 数学 欧拉函数
首先因为N很大,我们几乎不能筛任何东西 那么考虑设s(p)为 gcd(i,n)=p 的个数,显然p|n的时候才有意义 因为i与n的gcd肯定是n的因数,所以那么可得ans=Σ(p*s(p)) 那么对于 ...
- 鼠标DPI和液晶显示器分辨率的关系
鼠标DPI和液晶显示器分辨率的关系 说起鼠标,有两个性能指标是我们不能忽略的.一是游戏玩家相当熟悉的扫描率(单位:Frames Per Second),二是我们今天要和大家探讨的鼠标的分辨率(单位:D ...
- UVALIVE 2954 Task Sequences
竞赛图:图中的任意两点间有且仅有一条有向弧连接 求竞赛图中的哈密顿路的算法: 首先,由数学归纳法可证竞赛图在n>=2时必存在哈密顿路: (1)n=2时显然: (2)假设n=k时,结论成立,哈密顿 ...
- PL/SQL 07 触发器 trigger
--触发器 触发器有三类: 数据操作触发器 用before触发器进行数据校验 用after触发器进行级联操作 语句触发器限制数据的操作和记录操作日志 instead of 触发 ...
- python清华大学镜像
pip安装的-i参数: https://pypi.tuna.tsinghua.edu.cn/simple conda 设置: conda config --add channels https://m ...