F-最长回文串_2020 年第一届辽宁省大学生程序设计竞赛 (nowcoder.com)https://ac.nowcoder.com/acm/contest/8440/F
#includeusing namespace std; unordered_map mp; bool check(string s) { int letter[26] = {0}; int cntOdd = 0; for(auto c : s) letter[c-'a']++; for(int i = 0; i < 26; i++){ if(letter[i]&1) cntOdd++; } if(cntOdd > 1) return false; else return true; } int main() { int n, m; string s; cin >> n >> m; while(n --) { cin >> s; sort(s.begin(), s.end()); mp[s] ++; } int res = 0; int ret = 0;//是否有出现次数为奇数的字符串入选 for(auto t : mp) { if(t.second&1){ res += (t.second-1)*m; if(check(t.first)&&!ret){ res += m; ret = 1; } }else{ res += t.second*m; } } cout << res; return 0; }


![[辽宁省程序设计竞赛]F 最长回文串 [辽宁省程序设计竞赛]F 最长回文串](http://www.mshxw.com/aiimages/31/316749.png)
