Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include<ext/pb_ds/assoc_container.hpp>
  3. using namespace __gnu_pbds;
  4. using namespace std;
  5. typedef long long ll;
  6. typedef long double ld;
  7. #define pb push_back
  8. #define X first
  9. #define Y second
  10. #define sz(v) (int)v.size()
  11. using ord = tree<int, null_type, greater<int>, rb_tree_tag, tree_order_statistics_node_update>;
  12.  
  13. void solve();
  14.  
  15. main() {
  16. ios_base::sync_with_stdio(0), cin.tie(0);
  17. #ifdef ONPC
  18. freopen("in.txt", "r", stdin);
  19. #endif
  20. int t = 1;
  21. cin >> t;
  22. while (t--) solve();
  23. return 0;
  24. }
  25.  
  26. const int N = 2e5 + 5;
  27. int n, k, a[N][30];
  28. string s;
  29.  
  30. void solve() {
  31. cin >> n >> k >> s;
  32. for (int i = 0; i < k; ++i) {
  33. for (int j = 0; j < 30; ++j) {
  34. a[i][j] = 0;
  35. }
  36. }
  37. for (int i = 0; i < sz(s); ++i) {
  38. ++a[i % k][s[i] - 'a'];
  39. }
  40. int del = n / k;
  41. int ans = 0;
  42. int lef = 0, rig = k - 1;
  43. while (lef <= rig) {
  44. int cur = 1e9 + 7;
  45. if (lef == rig) {
  46. for (int z = 0; z < 26; ++z) {
  47. cur = min(cur, del - a[lef][z]);
  48. }
  49. } else {
  50. for (int z = 0; z < 26; ++z) {
  51. cur = min(cur, del + del - a[lef][z] - a[rig][z]);
  52. }
  53. }
  54. ans += cur;
  55. ++lef;
  56. --rig;
  57. }
  58. cout << ans << '\n';
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement