题目讨论板中人有点少就来灌水了。
以下两份代码,一个会UKE而另一个能正常通过,发现问题是一个用的cin一个用的scanf,求解释为什么cin不行啊。
AC
#include<bits/stdc++.h>
using namespace std;
char s[5000010];
int n,i,x,y,z,ans,dp[5000010];
int main()
{
scanf("%s",s),n=strlen(s);z=1;
for(i=0;i<n;i++)
x=x*13+s[i],y=y+z*s[i],z=z*13,
!(x^y)?ans+=(dp[i]=dp[i-1>>1]+1):0;
cout<<ans;
}
UKE
#include<bits/stdc++.h>
using namespace std;
char s[5000010];
int n,i,x,y,z,ans,dp[5000010];
int main()
{
cin>>s,n=strlen(s);z=1;
for(i=0;i<n;i++)
x=x*13+s[i],y=y+z*s[i],z=z*13,
!(x^y)?ans+=(dp[i]=dp[i-1>>1]+1):0;
cout<<ans;
}
UKE信息:UnexpectedResponse: got an unexpected response when requesting https://codeforces.com/data/submitSource: error decoding response body: invalid digit found in string