1 条题解

  • 1
    @ 2023-6-7 13:22:11
    #include<bits/stdc++.h>
    
    using namespace std;
    #define LL long long
    const int N = 1e6 + 10;
    const int INF = 0x3f3f3f3f;
    int n,k,t[60];
    char s[N];
    int main(){
    	cin >> n >> k;
    	scanf("%s",s+1);
    	for(int i = 1; i <= n;i++)
    		if(isupper(s[i]))
    			t[s[i] - 'A']++;
    		else
    			t[s[i] - 'a' + 26]++;
    	sort(t,t+52);
    	int now = 0;
    	while(!t[now])
    		now++;
    	t[51] += k;
    	while(k > 0)
    	{
    		if(k > t[now])
    			k -= t[now] , t[now] = 0;
    		else
    			t[now] -= k,k = 0;
    		now++;
    	}
    	long long ans = 0;
    	for(int i = 0;i < 52;i++)
    		ans += 1ll * t[i] * (t[i] - 1) / 2;
    	cout << ans << endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    2944
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    352
    已通过
    9
    上传者