题意
问从第一个状态转移到第二个状态需要至少几步
思路
按照题意bfs一遍即可
#include<iostream> #include<cstring> #include<cstdio> #include<queue> using namespace std; class sta{ public: char str[5]; int step; }; queue<sta>que; int vis[11][11][11][11]; bool getvis(sta a){ if(!vis[a.str[0]-'0'][a.str[1]-'0'][a.str[2]-'0'][a.str[3]-'0']){ vis[a.str[0]-'0'][a.str[1]-'0'][a.str[2]-'0'][a.str[3]-'0'] = 1; return 1; } return 0; } int main(){ int tcas,i; scanf("%d",&tcas); sta a, q; char ed[10]; while(tcas--){ scanf("%s%s",a.str,ed); // vis.clear(); memset(vis, 0, sizeof(vis)); while(!que.empty())que.pop(); a.step = 0; que.push(a); vis[a.str[0]-'0'][a.str[1]-'0'][a.str[2]-'0'][a.str[3]-'0'] = 1; while(!que.empty()){ q = que.front(); que.pop(); // cout<<q.str<<endl; if(strcmp(q.str,ed) == 0){ printf("%d\n",q.step); break; } a.step = q.step + 1; for(i = 0; i < 4; i++){ strcpy(a.str,q.str); a.str[i]++; if(a.str[i] == '9' + 1)a.str[i] = '1'; if(getvis(a))que.push(a); a.str[i] = q.str[i]; a.str[i] -- ; if(a.str[i] == '1' - 1)a.str[i] = '9'; if(getvis(a))que.push(a); if(i <= 2){ strcpy(a.str,q.str); char tmp; tmp = a.str[i]; a.str[i] = a.str[i+1]; a.str[i+1] = tmp; if(getvis(a))que.push(a); } } } } return 0; }
相关推荐
代码 基于BFS广度优先搜索算法代码代码 基于BFS广度优先搜索算法代码代码 基于BFS广度优先搜索算法代码代码 基于BFS广度优先搜索算法代码代码 基于BFS广度优先搜索算法代码代码 基于BFS广度优先搜索算法代码代码 ...
降群法解魔方 哈哈师大 使用双向BFS搜素
动态内存+BFS #include #include #include #include using namespace std; void BFS(list<int> *the_a,int the_N,int the_S,int *the_b){ int *m=new int[the_N]; for(int k1=0;k1;k1++) m[k1]=0; m[the_S-1]=1; ...
simulink BFSK仿真
详细地介绍BFS的思路模式以及用几个案例教授怎么运用BFS去解题。
bfsk系统仿真 bfsk系统仿真 bfsk系统仿真
这是山东大学可视化课程项目,用js实现的BFS和DFS,详细的展示了BFS和DFS的运行过程,网页可交互。
现有的分布式文件系统(如HDFS等)无法满足低延迟、高可用、跨地域扩展等方面的需求,所以我们从百度搜索的业务特点出发,开发了自己的分布式文件系统BFS。 设计目标 高可靠、高可用通过将数据副本进行多机房、多...
code for bfs algorithm
DFS和BFS算法的实现,使用C++语言,适合数据结构初学者学习。
压缩文件里的“bfs-node.h”是头文件,需要在Visual Studio中附加在头文件。这里采取了有向图的邻接链表表现形式,起作用的bfs函数的代码格式参考了《算法导论》这本书上的伪代码。
BFS广度优先搜索算法视频演示。宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索...
cuda code of bfs algorithm
Matlab仿真BPSK,BFSK,BASK,BDPSK相干解调以及非相干解调的误码率。
bfsk在高斯信道和锐利多径衰落信道中传输的性能比较,使用simulink!!!!!!!!!
采用共轭方向法中的BFS方法进行优化,程序中采用简单算例,并附有文档说明
C++ BFS迷宫.cpp
算法之BFS与DFS
this is code for bfs in c++
二叉树遍历BFS与DFS详细代码python版