关注
ll p[N],h[N],hb[N],base=1333331,mod=1e9+7;
int T,n;
string a,b;
ll cal(int l,int r){
return (h[r]-h[l-1]*p[r-l+1]%mod+mod)%mod;
}
ll calb(int l,int r){
return (hb[r]-hb[l-1]*p[r-l+1]%mod+mod)%mod;
}
void ini(){
p[0]=1;
for(int i=1;i<N;i++) p[i]=p[i-1]*base%mod;
}
void solve(){
string temp=a;
reverse(a.begin()+1,a.end());
for(int i=1;i<=n;i++){
h[i]=h[i-1]*base+a[i]-'a',h[i]%=mod;
hb[i]=hb[i-1]*base+b[i]-'a',hb[i]%=mod;
}
vector<int> suf(n+2,0);
for(int i=n;i>=1;i--){
if(temp[i]==b[i]) suf[i]=1,suf[i]+=suf[i+1];
else suf[i]=0;
}
map<int,vector<int>> mp;
for(int i=1;i<=n;i++){
int l=i,r=n;
while(l<=r){
int mid=(l+r)/2;
if(cal(i,mid)==calb(1,mid-i+1)) l=mid+1;
else r=mid-1;
}
// cout<<r<<' ';
if(r<i) continue;
int val=r-i+1;
if(r==n) val+=suf[n-i+2];
mp[val].push_back(n-i+1);
}
if(mp.empty()){
cout<<0<<' '<<1<<'\n';
return;
}
cout<<mp.rbegin()->first<<' '<<*min_element(all(mp.rbegin()->second))<<'\n';
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
4620次浏览 68人参与
# 找工作的破防时刻 #
251655次浏览 1953人参与
# 程序员找工作至少要刷多少题? #
9318次浏览 146人参与
# 你投递的公司有几家约面了? #
157786次浏览 995人参与
# 论秋招对个人心气的改变 #
5890次浏览 104人参与
# 我的AI电子员工 #
26137次浏览 159人参与
# OPPO求职进展汇总 #
770926次浏览 5396人参与
# 为了减少AI幻觉,你注入过哪些设定? #
1855次浏览 54人参与
# 刚入职的你踩过哪些坑 #
4192次浏览 91人参与
# 程序员能干到多少岁? #
5766次浏览 90人参与
# 一张图晒一下你的AI员工 #
2944次浏览 62人参与
# 牛客AI体验站 #
3349次浏览 91人参与
# 我现在比当时_,你想录用我吗 #
3667次浏览 63人参与
# 想辞职但是不敢的原因 #
20157次浏览 88人参与
# ai智能作图 #
624718次浏览 5627人参与
# AI Coding的使用心得 #
2328次浏览 60人参与
# 关于春招/暑期实习,你想知道哪些信息? #
3951次浏览 84人参与
# 牛客租房专区 #
146741次浏览 1464人参与
# 晒晒你司的新年福利 #
3974次浏览 70人参与
# 虾皮求职进展汇总 #
373393次浏览 2792人参与
