总之是个找三元回文字符串的题

TaopiTTT / 2024-10-15 / 原文

思路很妙
https://atcoder.jp/contests/abc375/tasks/abc375_d

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define lowbit(x) (x&-x)
using namespace std;
const double pi=acos(-1);

void solve(){
	string s;cin>>s;
	int n=s.size();
	int ans=0;
	vector<int> num(26),sum(26);
	for(int i=0;i<n;i++){
		int t=s[i]-'A';
		ans+=(i-1)*num[t]-sum[t];
		num[t]++;
		sum[t]+=i;
	}

	cout<<ans<<endl;
}
signed main(){
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int t=1;
	//cin>>t;
	while(t--) solve();
	return 0;
}