
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 · 1273 阅读 · 0 评论 -
倒水问题
倒水问题问题描述有两个无刻度标志的水壶,分别可装x升和y升(x、y为整数,且x、y<=100)的水。设另有一水缸(有无限水,也可以装无限水),可用来向水壶灌水或者倒出水,两水壶间,水可以相互倾灌。已知x升水壶开始时满壶,y升壶为空壶,问通过倒水或者灌水操作,最少用多少步才能在y升壶中量出z(z<=100)升水来输入输入文件为一行,分别表示x、y、z的值输...原创 2018-06-06 12:35:55 · 935 阅读 · 0 评论 -
翻硬币
翻硬币题目描述有 n 个硬币( 6 = < n <=3000 ),其中有m(0<=m<=n)个正面朝上,每次将 k (0 < k <=n)个硬币翻过来放在原来位置,直到 最后全部硬币翻成反面朝上为止。编程让计算机 找到步数最少的翻法,并把翻币次数打印 出来。输入一行,n,m,k的值输出一行,输出原创 2018-06-06 12:29:40 · 730 阅读 · 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 · 535 阅读 · 0 评论 -
骑士游历
问题描述输入输入n和m输出输出最少的步数样例输入 6 5样例输出 3题目解读这道题可谓是BFS的经典习题。 我们设计两个队列Q,step,分别用来储存当前的状态、当前状态所对应的步数 每次读取状态的时候分别取两个队列的队首,伸展向四个日字格即可code#include <bits/stdc++.h&g...原创 2018-07-05 20:04:38 · 339 阅读 · 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 · 284 阅读 · 0 评论