@[弑魂丶琉璃花P](/user/203102) 我感觉写的不错,这测评机为难人啊QWQ
by Diamiko @ 2020-04-16 09:33:34
@[弑魂丶琉璃花P](/user/203102) 初学红名
by _Sakura_Tears_ @ 2020-04-16 09:38:27
@[_Sakura_Tears_](/user/334968) ~~不是我的号,行了吧~~
by Diamiko @ 2020-04-16 09:39:48
@[弑魂丶琉璃花P](/user/203102) 拿弱一点的号问问题更容易被接受
by _Sakura_Tears_ @ 2020-04-16 09:41:08
比如说我这个号qwq
by _Sakura_Tears_ @ 2020-04-16 09:41:37
@[弑魂丶琉璃花P](/user/203102) 建议下载数据与复制题解对拍
by _Sakura_Tears_ @ 2020-04-16 09:42:34
@[_Sakura_Tears_](/user/334968) 好吧……
by Diamiko @ 2020-04-16 09:49:25
思路貌似差不太多
```cpp
#include<iostream>
#include<cstring>
#include<queue>
#include<map>
using namespace std;
map<string, int> mp;
int main() {
string a, b, x[10], y[10];
int n = 1;
cin >> a >> b;
while (cin >> x[n] >> y[n]) {
n++;
}
n--;
queue<string> Q;
queue<int> s;
Q.push(a);
s.push(0);
while (!Q.empty()) {
if (Q.front() == b) {
cout << s.front();
return 0;
}
if (s.front() >= 10) {
Q.pop();
s.pop();
}
string t = Q.front();
if (mp.count(t)) {
Q.pop();
s.pop();
continue;
}
mp[t] = 1;
for (int i = 1; i <= n; i++) {
int p = 0;
while (t.find(x[i], p) != -1) {
p = t.find(x[i], p);
Q.push(t.substr(0, p) + y[i] + t.substr(p + x[i].length()));
s.push(s.front() + 1);
p++;
}
}
Q.pop();
s.pop();
}
cout << "NO ANSWER!";
return 0;
}
```
by 蒟___ @ 2020-04-16 10:06:34