题解 P2133 【天作之合】
其实只是求逆序对啦(并没有那么难)
以小明的数字串为模板,e[i]储存i应该在第几个
小红的用f数组处理后即可得出她的字符顺序,再求一下逆序对即可
#include<bits/stdc++.h>
using namespace std;
int a,b,e[7],f[7],t,ans,i,j;
int main()
{
cin>>a>>b;
t=100000;
for (i=1;i<=6;i++)
{
e[a/t]=i;
a=a%t;
t=t/10;
}
t=100000;
for (i=1;i<=6;i++)
{
f[i]=e[b/t];
b=b%t;
t=t/10;
}
for (i=1;i<=5;i++)
for (j=i+1;j<=6;j++)
if (f[j]<f[i]) ans++;
printf("%d",ans<=2?ans+2:ans);
return 0;
}
最后注意ans<=2时加2