深夜补数据库实验报告,顺便把今天的题给做了吧。
挑个水题做呗,从开题到AC,大概5分钟吧2333333
给你一个长度为n的字符串,这个字符串由字符表的前K个字母构成,比如k=3,那么abcacbab,abbbc,abcbab都是正确的字符串。
然后定义字符串的子序列,这里的子序列不要求连续,只要不改变原字符串的位置即可,比如abcdef的子序列可以是adef。
然后定义一个好的子序列是什么样的呢,里面的不同字母出现的次数是相同的,比如aabbcc就是一个好的子序列。
然后就是求最长的好的子序列的长度。
统计各字母的出现的次数就行,答案就是原字符串中出现次数最少的字母再乘上K。
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <algorithm>
#include <deque>
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int n, k;
int temp[26];
string s;
int main() {
cin >> n >> k;
cin >> s;
int len = s.length();
for (int i = 0;i < len;++i) {
temp[s[i] - 65]++;
}
sort(temp, temp + k);
cout << temp[0] * k << endl;
//system("pause");
return 0;
}