![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BFS
Avrora_yi
oi juruo αvrora!
展开
-
数字格子问题
数字格子问题 问题描述 输入 输入文件为两行,每行4个整数,每个整数之间用一个空格隔开,总共8个整数,值为1-8这8个数字,表示最开始的数字格子状态 输出 输出变成标准状态所需要的最少的步数 样例输入 7 6 5 8 2 3 4 1 样例输出 2 题目解读 这道题和之前的八数码问题差不多,存储也和八数码一样用Cantor展开即...原创 2018-06-06 12:40:42 · 1183 阅读 · 0 评论 -
倒水问题
倒水问题 问题描述 有两个无刻度标志的水壶,分别可装x升和y升(x、y为整数,且x、y<=100)的水。设另有一水缸(有无限水,也可以装无限水),可用来向水壶灌水或者倒出水,两水壶间,水可以相互倾灌。已知x升水壶开始时满壶,y升壶为空壶,问通过倒水或者灌水操作,最少用多少步才能在y升壶中量出z(z<=100)升水来 输入 输入文件为一行,分别表示x、y、z的值 输...原创 2018-06-06 12:35:55 · 887 阅读 · 0 评论 -
翻硬币
翻硬币 题目描述 有 n 个硬币( 6 = < n <=3000 ),其中有m(0<=m<=n)个正面朝上,每次将 k (0 < k <=n)个硬币翻过来放在原来位置,直到 最后全部硬币翻成反面朝上为止。编程让计算机 找到步数最少的翻法,并把翻币次数打印 出来。 输入 一行,n,m,k的值 输出 一行,输出原创 2018-06-06 12:29:40 · 600 阅读 · 0 评论 -
八数码问题
八数码问题 题目描述 输入 两个3×3的矩阵,0表示空格,第一个表示初始状态,第二个表示目标状态 输出 最少步数,如果无解就输出-1 样例输入 2 8 3 1 6 4 7 0 5 1 2 3 8 0 4 7 6 5 样例输出 5 题目解读 这应该是广搜最经典的一道例题了。 这里拓展一个点:康拓展开 ...原创 2018-06-06 12:26:12 · 466 阅读 · 0 评论 -
骑士游历
问题描述 输入 输入n和m 输出 输出最少的步数 样例输入 6 5 样例输出 3 题目解读 这道题可谓是BFS的经典习题。 我们设计两个队列Q,step,分别用来储存当前的状态、当前状态所对应的步数 每次读取状态的时候分别取两个队列的队首,伸展向四个日字格即可 code #include <bits/stdc++.h&g...原创 2018-07-05 20:04:38 · 304 阅读 · 0 评论 -
【BFS拓展】康拓展开
(原谅我我实在不想粘题目了) 题目解读 这道题吧,本来不想加进来的。。其实就是对于八数码问题的一个补充,上面可爱的出题人已经将康拓展开讲的很清楚了。照着敲就行。 code #include <bits/stdc++.h> using namespace std; typedef long long ll; inline ll read() { ll x...原创 2018-07-05 20:23:43 · 248 阅读 · 0 评论