51Nod1182 完美字串(stl:map)
阿新 • • 發佈:2018-12-22
這道題思路就是找到相同的字母的數量,然後排序,算出結果。
找出相同的數量,用stl中map結構最快。
排序的話用優先佇列維護。
然後map,優先佇列不會,可以看看我之前的學習stl的部落格。自我感覺stl真的很好用!STL學習總結
#include<iostream> #include<string> #include<map> #include<queue> using namespace std; int main() { string s; map<char,int> a; cin>>s; for(int i=0;i<s.length();i++) a[s[i]]++; map<char,int>::iterator it; priority_queue<int> q; for(it=a.begin();it!=a.end();it++) { q.push(it->second); } long long sum=0,i=26; while(!q.empty()) { sum+=q.top()*i; i--; q.pop(); } cout<<sum<<endl; return 0; }