包AC的

权威  •  14天前


#include<bits/stdc++.h>
using namespace std;
int n,t;
string s1,s2,t1,t2;
int z,o,z2,o2,cnt; 
int main(){
	cin>>t;
	while(t--){
		cin>>n>>s1>>s2>>t1>>t2;
		z=z2=o=o2=cnt=0;
		for(int i=0,j=0;i<n||j<n;){
			if(z+o==0){
				if(t1[i]=='0'){
					if(s1[i]=='0') z++;
					else o++;
					i++;
				}else{
					while(t1[i]=='1'){
						if(s1[i]==0) z++;
						else o++;
						i++;
					}
				}
			}
			if(z2+o2==0){
				if(t2[j]=='0'){
					if(s2[j]=='0') z2++;
					else o2++;
					j++;
				}else{
					while(t2[i]=='1'){
						if(s2[i]==0) z2++;
						else o2++;
						j++;
					}
				}
			}
			int x=min(o,o2);
			int y=min(z,z2);
			cnt+=x+y ;
			o-=x;o2-=x;
			z-=y;z2-=y;
			int e=min(o,z2);
			o-=e;z2-=e;
			e=min(z,o2);
			z-=e;o2-=e;
		}
		cout<<cnt<<endl;
	}
	return 0;
}

评论:

请先登录,才能进行评论