40pts求调
查看原帖
40pts求调
1232851
Neokaye楼主2024/12/8 18:00
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
string s1,s2,vis1,vis2;
int _ans[10050],ans_cnt;
void solve(){
	int n;scanf("%d\n",&n);
	getline(cin,s1);getline(cin,s2);
	getline(cin,vis1);getline(cin,vis2);
	for(int i=0;i<=n-2;i++){
		//show();
		//cout<<s1<<' '<<s2<<'\n';
		if(s1[i]!=s2[i]){
			if(vis1[i]=='1'&&vis1[i+1]=='1')swap(s1[i],s1[i+1]);
			else if(vis2[i]=='1'&&vis2[i+1]=='1') swap(s2[i],s2[i+1]);
			//else cout<<"No";
			//cout<<s1<<' '<<s2<<'\n';
		}
		//cout<<s1<<' '<<s2<<'\n';
	}
	int ans=0;
	for(int i=0;i<=n-1;i++) if(s1[i]==s2[i]) ans++;
	_ans[++ans_cnt]=ans;
}
int main(){
	int T;
	scanf("%d",&T);
	
	for(int i=1;i<=T;i++){
		solve();
	}
	for(int i=1;i<=T;i++){
		printf("%d\n",_ans[i]);
	}
	return 0;
}
2024/12/8 18:00
加载中...