Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #include<ext/pb_ds/assoc_container.hpp>
- using namespace __gnu_pbds;
- using namespace std;
- typedef long long ll;
- typedef long double ld;
- #define pb push_back
- #define X first
- #define Y second
- #define sz(v) (int)v.size()
- using ord = tree<int, null_type, greater<int>, rb_tree_tag, tree_order_statistics_node_update>;
- void solve();
- main() {
- ios_base::sync_with_stdio(0), cin.tie(0);
- #ifdef ONPC
- freopen("in.txt", "r", stdin);
- #endif
- int t = 1;
- cin >> t;
- while (t--) solve();
- return 0;
- }
- const int N = 2e5 + 5;
- int n, k, a[N][30];
- string s;
- void solve() {
- cin >> n >> k >> s;
- for (int i = 0; i < k; ++i) {
- for (int j = 0; j < 30; ++j) {
- a[i][j] = 0;
- }
- }
- for (int i = 0; i < sz(s); ++i) {
- ++a[i % k][s[i] - 'a'];
- }
- int del = n / k;
- int ans = 0;
- int lef = 0, rig = k - 1;
- while (lef <= rig) {
- int cur = 1e9 + 7;
- if (lef == rig) {
- for (int z = 0; z < 26; ++z) {
- cur = min(cur, del - a[lef][z]);
- }
- } else {
- for (int z = 0; z < 26; ++z) {
- cur = min(cur, del + del - a[lef][z] - a[rig][z]);
- }
- }
- ans += cur;
- ++lef;
- --rig;
- }
- cout << ans << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement