JZOJ 3337. 【NOI2013模拟】wyl8899的TLE
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相关推荐
- jzoj3337-[NOI2013模拟]wyl8899的TLE【字符串hash,二分】
正题 题目大意 两个字符串A,BA,BA,B.可以修改AAA中的一个字符使得AAA中的1∼k1\sim k1∼k是BBB的子串,求kkk的最大值. 解题思路 先将AAA和BBB字符串hashhashh ...
- 【NOI2013模拟】棋盘游戏
Description 有一个N*M的棋盘,初始每个格子都是白色的. 行操作是指选定某一行,将这行所有格子的颜色取反(黑白互换). 列操作是指选定某一列,将这列所有格子的颜色取反. XX进行了R次行操 ...
- [jzoj 6093] [GDOI2019模拟2019.3.30] 星辰大海 解题报告 (半平面交)
题目链接: https://jzoj.net/senior/#contest/show/2686/2 题目: 题解: 说实话这题调试差不多花了我十小时,不过总算借着这道题大概了解了计算几何的基础知识 ...
- [JZOJ 5909] [NOIP2018模拟10.16] 跑商(paoshang) 解题报告 (圆方树)
题目链接: https://jzoj.net/senior/#contest/show/2529/2 题目: 题目背景: 尊者神高达很穷,所以他需要跑商来赚钱 题目描述: 基三的地图可以看做 n 个城 ...
- jzoj3339-[NOI2013模拟]wyl8899和法法塔的游戏【博弈论,暴力】
正题 题目大意 有nnn堆石子,每次选择一个区间博弈,先手必须先取最右边的石子堆. 每次询问(r,a,b)(r,a,b)(r,a,b)表示在a∼ba\sim ba∼b中选择一个数lll.要求使用l∼r ...
- [JZOJ 5911] [NOIP2018模拟10.18] Travel 解题报告 (期望+树形DP)
题目链接: http://172.16.0.132/senior/#contest/show/2530/1 题目: EZ同学家里非常富有,但又极其的谦虚,说话又好听,是个不可多得的人才. ...
- [JZOJ3347] 【NOI2013模拟】树的难题
题目 题目大意 给你一棵树,每个节点有三种黑.白.灰三种颜色. 你要割掉一些边(每条边被割需要付出一定的代价),使得森林的每棵树满足: 没有黑点或至多一个白点. 思考历程 这题一看就知道是一个树形DP ...
- JZOJ.4377[GDOI2016模拟3.10]习用之语 解题报告
习用之语 题目大意 给出 N N个长度为4的字符串,求出仅差DD个字符的字符串的对数. 输入格式 第一行两个正整数 N N,DD. 接下来 N N行,每行一个长度为4的字符串. 输出格式 一行,一个整 ...
- 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 ...
- 【JZOJ 省选模拟】多项式(poly)
题目 Description Input Output Sample Input 样例输入 1: 2 7 -7 14 样例输入 2: 3 1 4 1 5 样例输入 3: 0 998244353 Sam ...
最新文章
- 我用分布式事务干掉了一摞简历
- 深度 | 三大痛点左右着中国服务机器人产业发展
- 测试网站访问速度的几个小方法
- 分布式服务框架 dubbo/dubbox 入门示例(转)
- php采用fpdf生成中文pdf
- Processes and Threads
- python画树叶-使用Python turtle画分形树叶图
- linux中setfacl命令,setfacl命令
- 从零开始玩转JMX(四)——Apache Commons Modeler Dynamic MBean
- python单选按钮重置_python – Tkinter单选按钮初始化错误
- js udp通信_nodejs源码分析第十九章 -- udp模块
- usnews美国大学计算机科学排名,2019年usnews美国大学计算机科学排名
- python代码的层次结构_Python:父子层次结构的组合
- MS SQL 表字段增加,删除,修改
- Linux(CentOS) 下安装字体
- 编程语言c语言vb,c语言和vb语言哪个比较简单
- mac 安装 PyAudio
- 开发步骤_社交app开发步骤,送给不懂app开发的你
- 小 Mil 来了!Milvus 智能问答机器人上线
- 实数系的基本定理_1.1 实数
热门文章
- 策略盈亏分布统计——从零到实盘11
- win10修改本地密钥服务器,win10密钥服务器
- 【技巧总结】理解XXE从基础到盲打
- antd4.x [antd: Switch] `value` is not a valid prop, do you mean `checked`? 解决办法
- Dataframe基础操作巩固——美国大选献金项目
- 网线交叉网线线序接法
- 百度bae部署html,百度BAE使用:应用配置文件 app.conf
- 修改linux的ip地址及网关,Linux 修改 IP地址 和 网关
- 开发时几种常见的建模工具
- 不可预料的压缩文件末端怎么解决