CF1834C Game with Reversing

 

/*
7
5
abcde
abxde
5
hello
olleo
2
ab
cd
7
aaaaaaa
abbbbba
1
q
q
6
yoyoyo
oyoyoy
8
abcdefgh
hguedfbh


1
2
3
9
0
2
6

*/
#include<cstdio>
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;

int n,ans1,ans2,ans;
char s[maxn],t[maxn];

int main()
{
    int T;cin>>T;
    while(T--)
    {
        ans1=0,ans2=0,ans=0x3f3f3f3f;
        
        cin>>n;
        cin>>s+1>>t+1;
        for(int i=1;i<=n;i++){
            if(s[i]!=t[i]) ans1++;
            if(s[i]!=t[n+1-i]) ans2++;
        }
         
        if(ans1<=1){
            cout<<ans1<<'\n';
            continue;
        }
        if(ans2<=1){
            cout<<2<<'\n';
            continue;
        }
        if(ans1%2==0) ans=min(ans,2*ans1);
        else ans=min(ans,2*ans1-1);
        
        if(ans2%2==0) ans=min(ans,2*ans2-1);
        else ans=min(ans,2*ans2);
        
        cout<<ans<<'\n';
        
    }
}

 

posted @ 2023-10-22 09:02  JMXZ  阅读(10)  评论(0)    收藏  举报