CE求助
查看原帖
CE求助
1493494
Janguiham0319楼主2025/1/12 13:18
#include<iostream>
#include<cstring>
#include<string>
#include<queue>
using namespace std;
struct coord{
    string s;
    int step;
}
queue<coord>Q;
string r[6][2];//rules
int main(){
    string a,b;
    int cnt=1,ans=1e5;
    cin>>a>>b;
    while(cin>>r[cnt][0]>>r[cnt][1]){
        cnt++;
    }
    cnt--;
    Q.push((coord){a,0});
    while(!Q.empty()){
        coord u=Q.front();
        int ustep=u.step,us=u.s;
        if(ustep>10){
            cout<<"NO ANSWER!";
            return 0;
        }
        if(us==b){
            if(ustep<ans) ans=ustep;
            continue;
        }
        Q.pop();
        for(int k=0;k<cnt;k++){
            string c=r[k][0];
            int pos=us.find(c);
            int len=c.length();
            us.replace(pos,leng,r[k][1]);
            if(u.step<10) Q.push((coord){us,ustep+1});
        }
    }
    if(ans==1e5) cout<<"NO ANSWER!";
    else cout<<ans;
    return 0;
}
2025/1/12 13:18
加载中...