魔幻的提交记录
#include<bits/stdc++.h>
using namespace std;
int p[67108870],c[27];
int main(){
int n,pow2[30];
pow2[0]=1;
for (int i=1;i<=25;i++)
pow2[i]=pow2[i-1]*2;
char t;
cin>>n;
for (int i=1;i<=n;i++){
cin>>t;
int j=t-'a';
c[j]=!(c[j]);
int sum=0;
for (int j=0;j<=25;j++)
sum+=pow2[j]*c[j];
p[sum]++;
}
p[0]++;
int ans=0;
for (int i=0;i<=67108864;i++)
if (p[i])
ans+=p[i]*(p[i]-1)/2;
cout<<ans<<endl;
return 0;
}
非常混乱的代码,希望各位大咖能看懂