求调4wa
查看原帖
求调4wa
1052857
zer20101226楼主2024/7/22 16:00
#include<bits/stdc++.h>
using namespace std;
int n,k,r,x,y;
string s,s1,a,e="..";
struct bu{
	string yang;
	int x,l;
};
map<string,int>q;
int bfs(string x){
	queue<bu>p;
	p.push(bu{x,0,n});
	while(p.size()!=0){
		bu as=p.front();
		for(int i=0;i<=n;i++){
			string a=as.yang;
			if (a[i]!='.'&& a[i + 1]!= '.') {
				swap(a[i],a[as.l]);
				swap(a[i+1],a[as.l+1]);
				if(q[a]==0){
				 	q[a]=1;
				 	if(a==s1){
				 		return as.x+1;
					}
				 	p.push(bu{a,as.x+1,i});
				}
			}
		}p.pop();
	}
	return -1;
}
int main(){
	cin>>n>>s>>s1;
	for(int i=0;i<n;i++){
		if(s[i]=='B')x++;
		if(s1[i]=='B')y++;
	}s+=e;s1+=e;
	if(x!=y) cout<<-1;
	else
		cout<<bfs(s)<<endl;
}

2024/7/22 16:00
加载中...