【蓝桥杯】跳蚱蜢--BFS
创始人
2025-05-28 16:22:23

题目描述:

代码演示:

//跳蚂蚱
#include 
#include 
using namespace std;
struct pan{int p[9];   //一共有九个位置int pos;  //当前走过的步数 
};
//好像是set的重载函数 
bool operator<(const pan &lhs, const pan &rhs) {for (int i = 0; i < 9; ++i) {if (lhs.p[i] < rhs.p[i]) return true;if (lhs.p[i] > rhs.p[i]) return false;}return false;
}
pan start, endd;   //初始zhuangtai
queue  q;
set  ms;
int main()
{//给初始数组赋值for(int i=1;i<=8;++i){start.p[i-1] = i;  //最后一位代表是0 }    //此时p[9]={1,2,3,4,5,6,7,8,0}start.pos=0;   //初始步数为0//设置最终状态for(int i=1;i<=8;++i){endd.p[i-1] = 9 - i;  //最后一位代表是0 } //此时p[9]={8,7,6,5,4,3,2,1,0}endd.pos = 0;//现将初始状态入队q.push(start);ms.insert(start);  //去重? //开始正式开始了,广度优先while(!q.empty())   //队列不为空就一直循环 {//现将数据出队pan te1 = q.front();   //获取队首元素,不删除q.pop();  //删除队首元素//终止条件----两个结构体数组之间的比较--重载运算符 if(!(te1 < endd) && !(endd < te1)){//结束cout<

另外有一种不错的实现方式:

【36】蓝桥杯之跳蚱蜢(填空题)_shallow不秃头的博客-CSDN博客

相关内容

热门资讯

【黄山记忆工程口述档案专题】徽... 1月23日、28日,市档案馆、市非遗保护中心口述档案采集小组,两次采访资深级中国徽菜大师、安徽省劳动...
正阳县:手工馓子“云端”飘香 ... 全媒体记者 马军领 李京帆 通讯员 贺永明 李坤 随着春节临近,正阳县的传统手工食品成为抢手货,搭乘...