代码拉取完成,页面将自动刷新
同步操作将从 charlieshu/Algorithms 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include <iostream>
#include <string>
#define B 131
using namespace std;
int main(){
string s;
cin>>s;
unsigned long long h1[s.length()],h2[s.length()];
h1[0] = s[0];
h2[s.length()-1] = s[s.length()-1];
unsigned long long powb[s.length()+1];
powb[0] = 1;
powb[1] = B;
for(int i=1;i<s.length();i++){
powb[i+1] = powb[i]*B;
h1[i] = h1[i-1]*B+s[i];
h2[s.length()-i-1] = h2[s.length()-i]*B+s[s.length()-i-1];
}
int q;
cin>>q;
for(int t=0;t<q;t++){
int l,r;
cin>>l>>r;
// if(l == r){
// cout<<"YES"<<endl;
// continue;
// }
l--;
r--;
int a,b;
if(l == 0)
a = h1[l+(r-l+1)/2];
else
a = h1[l+(r-l+1)/2]-h1[l-1]*powb[(r-l+1)/2+1];
if(r == s.length()-1)
b = h2[r-(r-l+1)/2];
else
b = h2[r-(r-l+1)/2]-h2[r+1]*powb[(r-l+1)/2+1];
if(a == b)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。