大佬们求帮调,只对了1、3两个点,第2个点WA,4、5MLE,万分感激
查看原帖
大佬们求帮调,只对了1、3两个点,第2个点WA,4、5MLE,万分感激
556950
hyf__楼主2024/7/10 19:46
#include <iostream>
#include <string.h>
#include <string>
#include <queue>
using namespace std;
struct Node{
	string a,b;
}rule[10];
string s1,s2;
queue<pair<string,int> > que;
int main(){
	cin.tie(0),cout.tie(0),ios::sync_with_stdio(false);
	cin>>s1>>s2;
	int ii=1;
	while(cin>>rule[ii].a>>rule[ii].b)++ii;
	que.push(pair<string,int>(s1,0));
	--ii;
	while(!que.empty()){
		string s=que.front().first;
		int step=que.front().second;
		que.pop();
		if(step>10){
			cout<<"NO ANSWER!"<<"\n";
			break;
		}
		if(s==s2&&step<=10){
			cout<<step<<"\n";
			break;
		}
		for(int i=1;i<=ii;++i){
			int p=0;
			while(1){
				p=s.find(rule[i].a,p);
				if(p==s.npos)break;
				string ss=s;
				ss.replace(p,p+rule[i].a.length(),rule[i].b);
//				cout<<ss<<" "<<step+1<<"\n";
				++p;
				que.push(pair<string,int>(ss,step+1));
			}
		}
//		cout<<que.size()<<"\n";
	}
	return 0;
}
2024/7/10 19:46
加载中...