//紫书p253 比特变换器
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
int Q,s[110],r1,r2,r3,r4,ans;
char hh[120];
int main() {
scanf("%d",&Q);
for(int qaq=1;qaq<=Q;++qaq) {
r1=r2=r3=r4=0;ans=0;
cin>>hh;
for(int i=0;i<strlen(hh);++i)
if(hh[i]=='1') s[i]=1;
else if(hh[i]=='0') s[i]=0;
else if(hh[i]=='?') s[i]=2;
cin>>hh;
for(int i=0;i<strlen(hh);++i)
if(hh[i]=='0') {
if(s[i]==1) r1++;
if(s[i]==2) r3++;//s[i]只会变成0不会和其他的交换
}
else {
if(s[i]==0) r2++;
if(s[i]==2) r4++;//s[i]可能会变成0和其他的交换
}
ans+=min(r1,r2);
r1-=ans;r2-=ans;
ans+=r3+r4+r2;
if(r1) {
if(r4>=r1) ans+=r1;
else ans=-1;
}
printf("Case %d: %d\n",qaq,ans);
}
return 0;
}
比特变换器 Bits Equalizer
最新推荐文章于 2020-12-26 11:25:19 发布