求调!!!
查看原帖
求调!!!
558597
MujicaSaki摸鱼楼主2024/6/22 15:13

下载数据了,DEC c++ 和落谷IDE 都能过,就不知道为啥报错.。。

#include<bits/stdc++.h>
using namespace std;
const int N=2e7+5;
char a[N],b[N*2],s[N];
int n,p,q,nextt[N],z,P,x;
int main()
{
	cin>>a>>b;
	nextt[0]=strlen(b);
    //cout<<strlen(b)<<endl;
	x=strlen(b)+1;
	strcat(b,"#");
	strcat(b,a);
	n=strlen(b);
	for(int i=1;i<n;i++)
	{
		if((i>=p)||(i+nextt[i-q]>=p))
		{
			if(i>=p) p=i;
			while((p<n)&&(b[p]==b[p-i])) p++;
			nextt[i]=p-i;
			q=i;
		}
		else nextt[i]=nextt[i-q];
		//cout<<b[i]<<" "<<nextt[i]<<endl;
	}
	for(int i=0;i<x-1;i++) 
	{
	//	cout<<nextt[i]<<endl;
		z^=(i+1)*(nextt[i]+1);
	}
	for(int i=0;i<n-x;i++) 
	{
	//	cout<<nextt[i+x]<<endl;
		P^=(i+1)*(nextt[i+x]+1);
		//cout<<P<<endl;
	}
	cout<<z<<" "<<P;
}
2024/6/22 15:13
加载中...