题目大意:
电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。那么,从 A楼到 B楼至少要按几次按钮呢?
分析:
这道题其实不难,只需要我们找到到达目标节点(即要去的楼层)的最少距离(即按了多少次按钮),所以可以用bfs来做。
bfs也就是将队首取出,并拓展子节点(即可行方案),再将队首去掉,当访问数组为假的时候,就证明我们还没有找到目标节点,也就是问题无解。
代码:
#include<bits/stdc++.h>
using namespace std;
int N,A,B;
int k[205];
bool v[205];
int f[205];
int u,t;
queue<int>q;