概述
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f
#define mem(a,b)
memset( a,b,sizeof a)
string s1,s2;
map<string ,int > m;
struct node
{
string s;
int step;
node(string ss,int tp){
s=ss;step=tp;
}
};
queue<node> q;
int main()
{
std::ios::sync_with_stdio(false);
cin>>s1>>s2;
int l=s1.size();
q.push(node(s1,0));
while(!q.empty())
{
node t=q.front();
q.pop();
if(t.s==s2)
return cout<<t.step<<endl,0;
for(int i=0;i<l;i++){
if(t.s[i]=='*')
for(int j=max(0,i-3);j<=min(l-1,i+3);j++){
string ts=t.s;
if(ts[j]!='*'){
swap(ts[j],ts[i]);
if(m[ts]==0){
m[ts]=1;
q.push(node(ts,t.step+1));
}
}
}
}
}
return 0;
}
最后
以上就是会撒娇康乃馨为你收集整理的蓝桥杯 历届试题 青蛙跳杯子 (BFS)的全部内容,希望文章能够帮你解决蓝桥杯 历届试题 青蛙跳杯子 (BFS)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复