字符串重排


#include <iostream>#include <string>#include <unordered_map>using namespace std;int main(){ string str; cin >> str; unordered_map<char, int> cnt; for(auto& c : str) cnt[c] ++; int ac = cnt['a'] - 1; int bc = cnt['b']; int cc = cnt['c'] / 3; int res = min(ac, bc); res = min(res, cc); cout << res << endl;}
会合

7的倍数

中位数


#include <iostream>#include <algorithm>using namespace std;const int N = 2010;int a[N], ans[N], tem[N];int sum;int main(){ int n; cin >> n; for(int i = 1; i <= n; ++i) cin >> a[i]; int lm; if(n & 1) lm = n;//n为奇数 else lm = n - 1;//n为偶数 //长度为1的区间和中位数就是本身 for(int i = 1; i <= n; ++ i) sum += a[i]; //枚举奇数区间长度 for(int i = 3; i <= lm; i += 2) { //枚举区间起点 for(int j = 1; j <= n - i + 1; ++ j) { int e = j + i - 1;//e为区间终点 for(int k = 1; k <= n; ++ k) tem[k] = a[k]; sort(tem + j, tem + e + 1); sum += tem[(j + e) / 2]; } } printf("%d", sum); return 0;}