题意:
给你一串字符串s,问你有多少个点对(x,y)满足s[x]=s[y],(x,y)和(y,x)算不同种。
思路:
统计每个字符出现的次数,然后枚举一遍加加加就好了。
#include<cstdio>
#include<map>
using namespace std;
typedef __int64 LL;
const int MAX=1e5+5;
int n;
map<char,LL> mp;
char s[MAX];
int main(){
scanf("%s",s);
for(int i=0;s[i]!='\0';i++){
mp[s[i]]++;
}
LL ans=0;
for(int i=0;s[i]!='\0';i++){
ans+=mp[s[i]];
}
printf("%I64d\n",ans);
}