我是靠谱客的博主 落后手套,最近开发中收集的这篇文章主要介绍蓝桥杯历届试题 青蛙跳杯子如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑;如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑;如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣。

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
string a,b;
map<string,int>mp;
struct node
{
    string s;
    int ct;
    int fg;
    node(string S,int Ct,int Fg)
    {
        s=S;
        ct=Ct;
        fg=Fg;
    }
};
//杯子与青蛙进行交换,每次最多有六种可能
void bfs()
{
    queue<node>qu;
    if(a==b)
        cout<<0<<endl;
    else
    {
        node q=node(a,0,a.find('*'));
        qu.push(q);
        mp[a]=1;
        while(!qu.empty())
        {
            q=qu.front();
            qu.pop();
            for(int i=q.fg-3; i<=q.fg+3; i++)
            {
                if(i>=0&&i<q.s.size()&&i!=q.fg)
                {
                    string ss=q.s;
                    swap(ss[i],ss[q.fg]);
                    if(ss==b)
                    {
                        cout<<q.ct+1<<endl;
                        return ;
                    }
                    else if(mp[ss]!=1)
                    {
                        mp[ss]=1;
                        node q1=node(ss,q.ct+1,i);
                        qu.push(q1);
                    }
                }
            }
        }
    }
}
int main()
{
    cin>>a>>b;
    bfs();
    return 0;
}

 

最后

以上就是落后手套为你收集整理的蓝桥杯历届试题 青蛙跳杯子如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑;如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣。的全部内容,希望文章能够帮你解决蓝桥杯历届试题 青蛙跳杯子如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑;如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部