哈希莫名其妙炸了,求条
查看原帖
哈希莫名其妙炸了,求条
539345
OrinLoong楼主2024/9/27 13:54
#include <iostream>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <stack>
using namespace std;
typedef long long lolo;
typedef unsigned long long ulolo;
const int MAXN=2e6+5,CSS=26;
int N;string S;lolo ans;
stack<char> sta;ulolo chax;
unordered_map<ulolo,int> mp;
unordered_set<ulolo> vhax;
int main(){
//	#include <cstdio>
//	freopen("P9753_6.in","r",stdin);
	cin >> N >> S;S=" "+S;
	for(int i = 0;i <= N;i++){
//		printf("i=%d,S[i]=%d,",i,S[i]);
		if(sta.empty()||S[i]!=sta.top()){sta.push(S[i]);chax=chax*CSS+S[i];}
		else {sta.pop();chax=(chax-S[i])/CSS;}
		mp[chax]++;vhax.insert(chax);
//		printf("chax=%llu\n",chax);
	}
	for(ulolo val : vhax)ans+=1ll*mp[val]*(mp[val]-1)/2;
	cout << ans;
	return 0;
}
2024/9/27 13:54
加载中...