WA on #4 求调(玄关)
查看原帖
WA on #4 求调(玄关)
544310
wuhupai楼主2023/11/11 13:52
#include<bits/stdc++.h>
using namespace std;
long long T,n,stk[300005],top=0,ans=0,base=998244353,hsh=0;
long long x[300005],qpow[300505];
unordered_map<long long,long long>mp;
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	qpow[0]=1;
	for(long long i=1;i<=30500;i++){
		qpow[i]=(qpow[i-1]*10)%base;
	}
	cin>>T;
	while(T--){
		mp.clear();
		mp[0]=1;
		top=0,ans=0,hsh=0;
		cin>>n;
		for(long long i=1;i<=n;i++){
			cin>>x[i];
		} 
		for(long long i=1;i<=n;i++){
			if(x[i]!=stk[top]){
				top++;
				stk[top]=x[i];
				hsh=(hsh+qpow[top]*x[i]%base)%base;
			}
			else{
				hsh=(hsh-qpow[top]*stk[top]%base+base)%base;
				top--;
			}
			ans+=mp[hsh];
			mp[hsh]++;
			//cout<<hsh<<" ";
		}
		cout<<ans<<"\n";
	}
	
	
	return 0;
}
2023/11/11 13:52
加载中...