题目描述
blablabla
样例
void work(){
string s;
cin >> s;
map<char, int> mp;
for(auto i : s) mp[i]++;
priority_queue<int, vector<int>, greater<int> > q;
for(auto it : mp) q.push(it.sc);
if(q.size() == 1) cout << q.top() << endl;
else {
int ans = 0;
while(q.size() > 1) {
int t1 = q.top();
q.pop();
int t2 = q.top();
q.pop();
ans += t1 + t2;
q.push(t1 + t2);
}
cout << ans << endl;
}
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla