DescriptionDescriptionDescription

给定AAA 串和BBB串求更改BBB串一位后BBB串的字串是AAA串前缀的最长长度

A,B≤50000A,B\leq 50000A,B≤50000


SolutionSolutionSolution

写在前面:暴力可过

本人打了hashhashhash+二分代替后缀数组的判断,当然也可以打exkmpexkmpexkmp呢

时间复杂度:O(mlogn)O(mlogn)O(mlogn)


CodeCodeCode

#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;char a[50001],b[50001];int n,m,k=-1,ans,maxn;
unsigned long long power[50001],h1[50001],h2[50001];
inline unsigned long long hs1(int l,int r){return h1[r]-h1[l-1]*power[r-l+1];}
inline unsigned long long hs2(int l,int r){return h2[r]-h2[l-1]*power[r-l+1];}
int main()
{scanf("%s%s",a+1,b+1);n=strlen(a+1);m=strlen(b+1);power[0]=1;for(register int i=1;i<=n;i++){power[i]=power[i-1]*233;h1[i]=h1[i-1]*233+a[i]-'a';}for(register int i=1;i<=m;i++) h2[i]=h2[i-1]*233+b[i]-'a';for(register int i=1,ans,l,r;i<=m;i++){l=0;r=min(n,m-i+1);//先找最长前缀while(l<=r){int mid=l+r>>1;if(h1[mid]==hs2(i,i+mid-1)) l=mid+1;else r=mid-1;}ans=r+1;l=r+1;r=min(n,m-i+1);while(l<=r)//忽略掉不相同的一位后再找一遍{int mid=l+r>>1;if(hs1(ans+1,mid)==hs2(i+ans,i+mid-1)) l=mid+1;else r=mid-1;}maxn=max(maxn,r);}printf("%d",maxn);//输出
}

JZOJ 3337. 【NOI2013模拟】wyl8899的TLE相关推荐

  1. jzoj3337-[NOI2013模拟]wyl8899的TLE【字符串hash,二分】

    正题 题目大意 两个字符串A,BA,BA,B.可以修改AAA中的一个字符使得AAA中的1∼k1\sim k1∼k是BBB的子串,求kkk的最大值. 解题思路 先将AAA和BBB字符串hashhashh ...

  2. 【NOI2013模拟】棋盘游戏

    Description 有一个N*M的棋盘,初始每个格子都是白色的. 行操作是指选定某一行,将这行所有格子的颜色取反(黑白互换). 列操作是指选定某一列,将这列所有格子的颜色取反. XX进行了R次行操 ...

  3. [jzoj 6093] [GDOI2019模拟2019.3.30] 星辰大海 解题报告 (半平面交)

    题目链接: https://jzoj.net/senior/#contest/show/2686/2 题目: 题解: 说实话这题调试差不多花了我十小时,不过总算借着这道题大概了解了计算几何的基础知识 ...

  4. [JZOJ 5909] [NOIP2018模拟10.16] 跑商(paoshang) 解题报告 (圆方树)

    题目链接: https://jzoj.net/senior/#contest/show/2529/2 题目: 题目背景: 尊者神高达很穷,所以他需要跑商来赚钱 题目描述: 基三的地图可以看做 n 个城 ...

  5. jzoj3339-[NOI2013模拟]wyl8899和法法塔的游戏【博弈论,暴力】

    正题 题目大意 有nnn堆石子,每次选择一个区间博弈,先手必须先取最右边的石子堆. 每次询问(r,a,b)(r,a,b)(r,a,b)表示在a∼ba\sim ba∼b中选择一个数lll.要求使用l∼r ...

  6. [JZOJ 5911] [NOIP2018模拟10.18] Travel 解题报告 (期望+树形DP)

    题目链接: http://172.16.0.132/senior/#contest/show/2530/1 题目: EZ同学家里非常富有,但又极其的谦虚,说话又好听,是个不可多得的人才.       ...

  7. [JZOJ3347] 【NOI2013模拟】树的难题

    题目 题目大意 给你一棵树,每个节点有三种黑.白.灰三种颜色. 你要割掉一些边(每条边被割需要付出一定的代价),使得森林的每棵树满足: 没有黑点或至多一个白点. 思考历程 这题一看就知道是一个树形DP ...

  8. JZOJ.4377[GDOI2016模拟3.10]习用之语 解题报告

    习用之语 题目大意 给出 N N个长度为4的字符串,求出仅差DD个字符的字符串的对数. 输入格式 第一行两个正整数 N N,DD. 接下来 N N行,每行一个长度为4的字符串. 输出格式 一行,一个整 ...

  9. 6687. 【JZOJ 省选模拟】树没了(tree)

    题目 Description Input Output 2操作的个数行,每行代表一个询问的答案. Sample Input 5 5 1 1 2 3 4 5 1 2 2 3 2 4 1 5 Q 1 M ...

  10. 【JZOJ 省选模拟】多项式(poly)

    题目 Description Input Output Sample Input 样例输入 1: 2 7 -7 14 样例输入 2: 3 1 4 1 5 样例输入 3: 0 998244353 Sam ...

最新文章

  1. 我用分布式事务干掉了一摞简历
  2. 深度 | 三大痛点左右着中国服务机器人产业发展
  3. 测试网站访问速度的几个小方法
  4. 分布式服务框架 dubbo/dubbox 入门示例(转)
  5. php采用fpdf生成中文pdf
  6. Processes and Threads
  7. python画树叶-使用Python turtle画分形树叶图
  8. linux中setfacl命令,setfacl命令
  9. 从零开始玩转JMX(四)——Apache Commons Modeler Dynamic MBean
  10. python单选按钮重置_python – Tkinter单选按钮初始化错误
  11. js udp通信_nodejs源码分析第十九章 -- udp模块
  12. usnews美国大学计算机科学排名,2019年usnews美国大学计算机科学排名
  13. python代码的层次结构_Python:父子层次结构的组合
  14. MS SQL 表字段增加,删除,修改
  15. Linux(CentOS) 下安装字体
  16. 编程语言c语言vb,c语言和vb语言哪个比较简单
  17. mac 安装 PyAudio
  18. 开发步骤_社交app开发步骤,送给不懂app开发的你
  19. 小 Mil 来了!Milvus 智能问答机器人上线
  20. 实数系的基本定理_1.1 实数

热门文章

  1. 策略盈亏分布统计——从零到实盘11
  2. win10修改本地密钥服务器,win10密钥服务器
  3. 【技巧总结】理解XXE从基础到盲打
  4. antd4.x [antd: Switch] `value` is not a valid prop, do you mean `checked`? 解决办法
  5. Dataframe基础操作巩固——美国大选献金项目
  6. 网线交叉网线线序接法
  7. 百度bae部署html,百度BAE使用:应用配置文件 app.conf
  8. 修改linux的ip地址及网关,Linux 修改 IP地址 和 网关
  9. 开发时几种常见的建模工具
  10. 不可预料的压缩文件末端怎么解决