字符串重排

IMG_20220326_160150.jpg
IMG_20220326_160518.jpg

  1. #include <iostream>
  2. #include <string>
  3. #include <unordered_map>
  4. using namespace std;
  5. int main()
  6. {
  7. string str;
  8. cin >> str;
  9. unordered_map<char, int> cnt;
  10. for(auto& c : str) cnt[c] ++;
  11. int ac = cnt['a'] - 1;
  12. int bc = cnt['b'];
  13. int cc = cnt['c'] / 3;
  14. int res = min(ac, bc);
  15. res = min(res, cc);
  16. cout << res << endl;
  17. }

会合

IMG_20220326_160705.jpgIMG_20220326_160710.jpg

7的倍数

IMG_20220326_160736.jpg
IMG_20220326_160742.jpg

中位数

IMG_20220326_160757.jpg
IMG_20220326_160802.jpg

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. const int N = 2010;
  5. int a[N], ans[N], tem[N];
  6. int sum;
  7. int main()
  8. {
  9. int n; cin >> n;
  10. for(int i = 1; i <= n; ++i)
  11. cin >> a[i];
  12. int lm;
  13. if(n & 1) lm = n;//n为奇数
  14. else lm = n - 1;//n为偶数
  15. //长度为1的区间和中位数就是本身
  16. for(int i = 1; i <= n; ++ i)
  17. sum += a[i];
  18. //枚举奇数区间长度
  19. for(int i = 3; i <= lm; i += 2)
  20. {
  21. //枚举区间起点
  22. for(int j = 1; j <= n - i + 1; ++ j)
  23. {
  24. int e = j + i - 1;//e为区间终点
  25. for(int k = 1; k <= n; ++ k)
  26. tem[k] = a[k];
  27. sort(tem + j, tem + e + 1);
  28. sum += tem[(j + e) / 2];
  29. }
  30. }
  31. printf("%d", sum);
  32. return 0;
  33. }