广搜,最后一个WA,求调
查看原帖
广搜,最后一个WA,求调
580608
lupengheyyds楼主2022/10/19 17:07
#include<bits/stdc++.h>
using namespace std;
//map<string,string> rule[10];
string yuan[10],xian[10];
string a,b;
int cnt=1;
struct node{
	string data;
	int step;
};
queue<node> que;
void bfs(){
	que.push({a,0});
	while(!que.empty()){
		node f=que.front();que.pop();
		if(f.step>10){
			cout<<"NO ANSWER!";
			return;
		}
		if(f.data==b){
			cout<<f.step;
			return;
		}
		for(int i=1;i<=cnt;i++){
			string tmp=f.data;
			int pos=tmp.find(yuan[i]);
			if(pos==string::npos)continue;
			tmp.erase(pos,yuan[i].size());
			tmp.insert(pos,xian[i]);
			que.push({tmp,f.step+1});
		}
	}
	return;
}
int main(){
	cin>>a>>b;
	while(cin>>yuan[cnt]>>xian[cnt])cnt++;
	cnt--;
	bfs();
	return 0;
}
2022/10/19 17:07
加载中...