是一道水题

虽然看起来像是DP,但其实是贪心

扫一遍就A了

QwQ

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <set>
#include <map>
using namespace std;
int n,a[],b[],f[];
char ax[],bx[];
int main(){
scanf("%d",&n);
scanf("%s",ax+);
scanf("%s",bx+);
for(int i=;i<=n;i++){
a[i]=ax[i]-'';
b[i]=bx[i]-'';
}
for(int i=;i<=n;i++){
if(a[i]!=b[i]){
int midm=0x3f3f3f3f;
for(int j=i+;j<=n;j++)
if(a[j]!=b[j]){
midm=j;
break;
}
if(midm-i<=){
swap(a[i],a[midm]);
f[i]=f[i-]+midm-i;
}
else{
a[i]=b[i];
f[i]=f[i-]+;
}
}
else{
f[i]=f[i-];
}
}
// for(int i=1;i<=n;i++)
// printf("%d ",f[i]);
// printf("\n");
printf("%d\n",f[n]);
return ;
}
05-02 07:51