![](https://img-blog.csdnimg.cn/20210305154040109.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
搜索技术
文章平均质量分 93
搜索技术
lllllan.
盛意以江河,江河不及你
展开
-
专题整理——搜索技术
知识点整理递归和全排列BFS和队列BFS状态图搜索DFS回溯与剪枝题目练习题目题解类型HDU1253胜利大逃亡题解简单BFSPOJ3278 Catch That Cow题解简单BFSPOJ 3126 Prime Path题解简单BFSHDU 2102 A计划题解简单BFSfzu 2150 Fire Game题解双起点BFSHDU2563 统计问题题解简单DFSHDU1035 Robot Motion题解简单DF原创 2020-07-29 02:00:00 · 246 阅读 · 0 评论 -
kuangbin 专题一 简单搜索
kuangbin专题1. 棋盘问题 POJ - 1321难度: ★题意: 一个棋盘上‘#'的位置表示可以放置棋子,要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列。问你在n∗nn*nn∗n的棋盘上拜访kkk个棋子有多少种不同的方案。题解: 爆搜。每次只在某一行上放置一个棋子,并对放置的列进行标记。dfs进入下一行,可以选择在未标记的列放一颗棋子或直接进入下下一行。一直递归到放置棋子满足kkk个时对方案总数+1+1+1.#include<iostream>#include<原创 2021-01-23 20:13:12 · 230 阅读 · 1 评论 -
2018 ICPC Jiaozuo F. Honeycomb【恐怖输入 + BFS⭐】
题意: 【巨恶心的输入】按图形给出一个蜂巢,要求计算从SSS点到TTT点最少需要访问多少个点。题解: 【不脑抽写个优先队列就轻松过了Orz】。输入虽然有点恐怖,但是根据规律我们可以自行给每个点进行编号【我的编号规则为:第一列从上到下编号[1,r][1,r][1,r], 第二列从上到下编号[r+1,2r][r+1,2r][r+1,2r]】。然后就是去计算每个蜂窝的中心点【S、TS、TS、T在蜂窝中心】、三条边【一个蜂窝有六条边,但是为了较少重复计数,选择其中三边即可】的位置。如果某条边为空,则对两边的蜂窝原创 2020-12-11 10:51:04 · 136 阅读 · 0 评论 -
2019 ICPC Asia Nanjing Regional C. Digital Path【DFS】
C. Digital Path题意: 在一个n∗mn * mn∗m的图中,求所有连续的差值为1的极大序列【长度至少为4】的总数。题解: 题面太长了很迟才开题,但其实是一道不算难的搜索。要求差值为1,即从序列中的最小值开始搜索,通过dfs记录所有路径的数目。TLE。 不加处理的暴搜的结果。 需要记忆化搜索,记录下某些点某些路径的dp值,减少一些重复的搜索。对于序列长度至少为4的要求,即用一个三维的数组dp[x][y][i]去表示坐标(x, y)的点后续长度为i的序列个数(dp[x][y...原创 2020-11-23 18:08:31 · 147 阅读 · 0 评论 -
2015 长春赛A && HDU5527 Too Rich【贪心 + DFS】⭐
Too Rich题意: 给你一定数量的面值分别为1,5,10,20,50,100,200,500,1000,20001,5,10,20,50,100,200,500,1000,20001,5,10,20,50,100,200,500,1000,2000的货币,要你用最多数量货币正好凑出ppp元。【正向思维的贪心 + DFS】反向遍历:例如手里有6张十元和一张五十元,要求凑出70元。如果从十元开始贪,是凑不出70元的。所以只能反向遍历,先对面值较大的货币进行贪心,而后对面值较小的进行贪心。贪多 :原创 2020-11-08 18:28:37 · 112 阅读 · 0 评论 -
CodeForces-1301F Super Jaber 【多源BFS】⭐
Super Jaber题意: 在一个n*m的二维平面中,每一个方格都有特定的颜色。方格中的移动规则为纵向或横向移动一个单位耗费一个时间,从一个颜色为i的方格跳转向另一个相同颜色的方格耗费一个时间。求从某一个方格到目标方格的最小时间。思路: 首先看题目的一些数据范围:时间限制time limit per test5 seconds、二维平面的大小和颜色范围1 ≤ n, m ≤ 1000 , 1 ≤ k ≤ min(40, n ⋅ m)、以及q次询问1 ≤ q ≤ 10510^5105。可见...原创 2020-11-03 19:13:33 · 82 阅读 · 0 评论 -
CodeForces - 520B Two Buttons【模拟 / BFS】
Two Buttons题意: 每次只能将一个数乘以2,或加一,问从n得到m的最小步数是多少。题解: 看到题目我第一反应就是BFS,几乎是无脑就写完了(加了一个剪枝),然后我才发现大家都是当作思维题或者是简单模拟的,好吧可能是我草率了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e4 + 10;int n, m;int vis[N << 1...原创 2020-11-02 12:29:32 · 160 阅读 · 0 评论 -
HDU1175 连连看【DFS+剪枝】
连连看题意: 给定一个n*m的连连看的图,有q次操作,问点击(sx,sy)与(ex,ey)能否使方格消失(!!但是,就算可以消失,也不能改变原图,这q次操作相互之间没有联系)。消失的条件详见题目。题解: 一开始还以为是判断给定的连连看图能否全部消失,但是只是针对两个方格的询问,并且前后没有联系的话,那只要通过DFS就能做,无非多一个记录路线方向以及拐弯次数。针对这个拐弯次数,可以有一个剪枝,有无这个剪枝,是109MS和6770MS的差距,不过题目给的时间足够长,所以没有剪枝也能过。#i...原创 2020-11-01 10:55:08 · 166 阅读 · 0 评论 -
POJ3984 迷宫问题【简单BFS+输出路径】
迷宫问题题意: 在一个5*5的迷宫中,数字0表示为可通过的路,数字1表示为不可通过的墙。问从左上角走到右下角的最短路线,并且输出路径。(题目保证只有一组解,所以不用考虑字典序啥的)题解: 据说,题目真的只有一组解,你只要复制样例中的输出然后提交就能过。 虽然但是,还是要正儿八经做题的,输出路径最近常干了,甚至自己都已经出过一道输出路径的BFS题目了。添加两个pre数组记录前驱节点的坐标,最后借助栈从终点往起点递推,存入所有经过点,再输出出来即可。#include<iostream...原创 2020-10-09 19:51:50 · 158 阅读 · 0 评论 -
I. Improve SPAM【BFS+拓扑排序】
I. Improve SPAM题意: 给你一个有向图,N个点中有1-L个为发送点,剩下的为接收点。点1发送一封邮件给他相邻的点,其他的点接着发送,可能会收到多封邮件,每封发送。问接收点一共接收到了多少封邮件,以及多少个接收点收到了邮件。题解: 换个说法就是说,除了前L个点为发送点其余均为接受点,问从点1出发能够达到多少个接受点并且一共有多少条路径。 比赛时Sstee1XD直接用了BFS,中间加了一些优化,的确是最出来了。但是后续补题,我还是再写了一遍,加了一个拓扑排序的模板,跑的更快...原创 2020-10-06 16:18:40 · 183 阅读 · 0 评论 -
L. Lonely day【BFS+DFS】
L. Lonely day题意: 给定一个n*m的图,途中的’S’为起点,‘E’为终点。每次移动只能横向或纵向地移向最近的一个干净的点’.'或终点,'X’为脏的点。如果能到达终点,则输出步数最少并且字典序最小的路径(下移为D、左移为L、右移为R、上移为U)。否则输出-1。曲折经历: 比赛时想的没有那么周到,用BFS+DFS,结构体里携带各种参数,并且实时传递移动路径,导致空间占用比较大,加上本来算法的效率就不高,所以WA的和TLE的次数累计到达了13发。最后各种修改,卡常1980ms极限...原创 2020-10-04 13:05:19 · 151 阅读 · 0 评论 -
K. Birdwatching——DFS剪枝
点这里题意: 有n个点和m条有向边,根节点T。输出所有与根节点有直接边,并且不能通过其他路径到达根节点的所有节点。题解: 最容易能够想到DFS,一开始题意理解偏差了一直没写对,完全修改正确了之后交了TLE。一些细节不知道怎么处理就加了一个tarjan强连通分量的模板。后来再找大佬的题解,发现一些细节处理好了就不需要用到tarjan。反向建图。合法的路径都是到达根节点的,但是要从根节点开始搜索,自然需要反向建边。搜索起点。为了处理方便,建边时舍弃u->root的边,将这些直接连...原创 2020-10-01 10:48:00 · 203 阅读 · 0 评论 -
HDU3251 Being a Hero——最大流最小割(Dinic+输出割边)⭐
点这里题意: 给定一个带权有向图,n个城市m条路(有边权),以及f个赠与你的城市(带有点权)。你需要从受赠与的城市中选择一些(可全部),并割断某些边将这些城市与其他城市隔开,你的最终受益等于所有受赠的点权和减去割掉的边权和。计算你的最大收益。并且输出割掉的边的编号。题解: 要注意我们的收益是受赠与的城市的权值和减去割掉的边权和,而且必须要将你选择的城市与其他城市分割开。因此我们需要计算出能分割你的城市和其他的城市的最小边权和,而这个最小值,就是最大流的值。 至于要打印割边的编号,那我们...原创 2020-09-08 11:06:22 · 175 阅读 · 0 评论 -
HDU1532 Drainage Ditches——最大流(EK、Dinic模板)
点这里题意: 源点1以及汇点m,n条带权有向边的权值表示每条边的限制容量。求源点到汇点的最大流。题解: 最大流的相关概念和算法参考最大流问题与Ford-Fulkerson算法介绍、网络流(一) 入门到熟练#include<bits/stdc++.h>using namespace std;const int inf = 0x3f3f3f3f;const int N = 300;int n, m, pre[N], G[N][N]; //G记录残留网络int bfs(...原创 2020-09-06 11:56:32 · 99 阅读 · 0 评论 -
HDU4126 Genghis Khan the Conqueror——最小生成树+树形DP(⭐)
点这里题意: 给定一个带权无向图G,n个点m条边,每条边都有一个权值w。题目保证两个点之间最多只有一条边。接下来有Q次边权的改变,且改变后的权值之后一定比原来的更大。求每次改变边权之后的所有最小生成树的平均值(边权的改变前后不影响。题解:构造最小生成树: 在没有任何边权改变之前,求出最原始的最小生成树,记录这棵树的权值和ans。边权替换: 再次强调,每次边权的改变,是独立操作、前后互补影响的。明确之后再对改变的边权进行分类讨论:边在树上: 这次改变的边在最原始的最小生成树上,并...原创 2020-09-05 14:36:17 · 145 阅读 · 0 评论 -
HDU1269 迷宫城堡——强连通(Kosaraju/Tarjan)
点这里题意: 判断一个有向图G是不是强连通图。题解: Kosaraju算法#include<bits/stdc++.h>using namespace std;const int N = 1e4 + 10;int n, m, u, v;int cnt, vis[N], scc[N];vector<int> G[N], rG[N];vector<int> S;void dfs1(int u){ vis[u] = 1; for(int...原创 2020-08-31 15:16:37 · 125 阅读 · 0 评论 -
POJ1144 Network——割点(tarjan)
点这里题意: 输入一个无向图,求割点的数量。题解: 模板题,注意输入就可以了,剩下的套模板就能解决。#include<iostream>#include<algorithm>#include<cstring>#include<vector>using namespace std;const int N = 110;int n, ans, dfn;int num[N], low[N];bool iscut[N];vector<原创 2020-08-25 10:03:34 · 180 阅读 · 0 评论 -
UVA10054 The Necklace——欧拉回路(DFS)
点这里题意: 有n个珠子。每个珠子有两种颜色,分布在珠子的两边。一共有50种不同的颜色。把这些珠子串起来,要求两个相邻的珠子接触的部分颜色相同。问是否能连成一个珠串项链?如果能,打印出一种连法。题解: 一开始看样例其实我有点懵 ,每行给出某个珠子的两个颜色,然后相同颜色的能相连。其实我们换个角度,把行输入看成是一条边(原本代表一个珠子的两个颜色),把每种颜色看成一个点。那么我们的任务就简单明了了,把所有的颜色连起来,每条边通过且只通过一次——欧拉回路。连通。 一般情况下是需要用DFS、并查集等方法原创 2020-08-23 19:09:37 · 209 阅读 · 0 评论 -
HDU1811 Rank of Tetris——拓扑排序(BFS+并查集缩点)
点这里题意: n个人个m个约束条件,每行约束条件都有“<>=”符号,“=”表示两人同级,两个人之间编号大的在前。按照已知条件如果排名唯一,则输出OK;排名不唯一则输出UNCERTAIN;约束条件之间矛盾则输出CONFLICT。题解:缩点(并查集)。 不要想 的太复杂 (我就是一直在考虑“=”怎么处理,一直没敢下手) 其实所有=联系的点,合并成一个点处理即可,他们内部的排名肯定是能够确认的,题目不要求输出排名,那就不用在意,看成一个点处理就行。这步处理,则是采用并查集的方式。CONF原创 2020-08-22 21:38:35 · 115 阅读 · 0 评论 -
HDU3342 Legal or Not——拓扑排序(裸题)
点这里题意: n个人和m对人机关系,每对人机关系x、y表示x是y的师傅。人机关系具有传递性,即我的师傅的师傅也是我的师傅,我的徒弟的徒弟也是我的徒弟。要求找出人际关系中是否含有不合法的,即如果出现某个人既是我的师傅,也是我的徒弟,则关系不合法,输出NO,全都合法输出YES。题解: 刚看题意觉得新鲜,其实就是拓扑排序的裸题,按照拓扑排序的模板走完,如果还要人的入度不为0,说明内部构成了循环,而构成循环的原因就是出现了不合法的关系。#include<bits/stdc++.h>using原创 2020-08-22 15:42:04 · 211 阅读 · 0 评论 -
HDU4857 逃生——拓扑排序(反向建图+优先队列)
点这里题意: n个人逃生,m个限制条件。后m行每行两个数a,b表示a必须在b前面逃生。如果两个人x和y没有先后先后限制,则编号小的在前。题解: 一定要反向建图。坑点看后续过程中犯的错:人数太多。 傻傻地建了一个30000*30000的二维数组,然后运行的时候显示源文件未编译,完了都没发现错在哪里。不用去重。 样例中就有重复出现1 2,于是我就定义一个set用来去重,结果造成了MLE。实际上想了一下,邻接表不同于邻接矩阵,重复了也没关系。正向建图+优先队列。 思路很清晰,觉得特别完美。但问题原创 2020-08-21 22:36:08 · 204 阅读 · 0 评论 -
POJ1270 Following Orders——拓扑排序(DFS回溯+字典序)
点这里题意: 多组输入,每组输入的第一行列出受约束的字符。第二行每对字符a、b表示a必须排在b的前面。要求输出所有可行的情况,按字典序排序。结尾用空行分开。题解: 不同以往的数字,这次受约束的是小写字母,可以在排序之后将字母转换成数字,也可以利用map来解决。因为要输出所有可行的情况,所以需要用DFS,并且还得回溯。过程中犯的错:字典序。 又是偷懒读题,因为题面是英文的,缺乏耐心,以为自己读懂题就不继续往下读了,然后就漏了这么一个大条件。第二行约束条件的获取。 读完题目自然知道清楚每两个字符原创 2020-08-22 11:47:34 · 353 阅读 · 0 评论 -
HDU1285 确定比赛名次——拓扑排序(BFS+优先队列)
点这里Problem Description有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。Input输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也原创 2020-08-20 23:05:21 · 198 阅读 · 0 评论 -
DFS入门
文章目录问题引入数方块走迷宫N皇后问题DFS算法演示代码运行递归存图移动选择访问标记在介绍DFS之前呢,我想先说说我第一次接触DFS时的一个状态,当时好像时某个学姐在讲课,直接给我整懵了,介绍题目的时候我的第一反应就是这样的题目也能代码实现吗(实际上我当时的水平可能就停留在简单的输入输出),在解释算法原理的时候也是听的云里雾里,代码解析的时候更是懵的一批。所以听不懂也没有关系啊,因为时录播的视频,大家有那里听不懂的可以暂停思考一下或者再看一遍,实在看不懂也可能是我解释的不是特别清楚,也可以私聊找我。问题原创 2020-08-14 14:40:36 · 272 阅读 · 0 评论 -
HZNU2509 曲院风荷——折半搜索
传送门Descriptionkk在刷题劳累的时候喜欢去曲院风荷听戏喝茶。kk有一个容量为x个单位的大茶杯,同时kk想喝上一下午,于是他买了n杯茶,每杯茶中有ai个单位的茶水。但是kk有个坏习惯,就是当茶杯里的水倒满的时候kk会倒掉茶杯里的所有茶水(缓慢倒水,水满就倒掉),例如假设往空茶杯中总共加了m个单位的茶水,茶杯中只会剩余m%x单位的茶水。现在kk想知道将n杯茶水选取任意杯茶水倒入茶杯中,最后最多能剩下多少茶水。但是kk太劳累了,所以需要你来帮忙计算剩余茶水的最大值。Input单组输入。每组输原创 2020-08-06 13:12:38 · 291 阅读 · 0 评论 -
HDU 1045 Fire Net——二分图最大匹配/DFS
传送门题意: 在一个n*n的图中,X表示墙,.表示空地,要求在空地上放置堡垒,且两个堡垒不能放在同一行或同一列上,除非中间隔着一堵墙。求能放置堡垒的最大数量。题解: 首先图很小,最大情况为4*4,DFS深搜就能做出来,后面也有dfs的代码。同时这也是一道典型的二分图求最大匹配的题目吧,但是谁和谁匹配,已经脱离普通的横纵坐标的匹配了,需要给每个点重新编号。匈牙利算法左图排除横向上重复,如果中间没有墙,则每行为同一编号。右图同理为排除纵向上的重复。然后将此分为两个集合,至此,就已经转化为二分图的最大匹配原创 2020-08-04 02:06:08 · 169 阅读 · 0 评论 -
POJ 1062 昂贵的聘礼——Dijkstra/DFS
传送门题意: (反正题目就是中文的,理解起来应该不会有太大问题)题解: 一看就知道是最短路问题,但因为有个等级限制需要做一些小小的处理,最简单的是一开始就框定一个等级范围,然后在范围内的才进行交换,然后更新最小值。当然这样需要遍历所有范围,进行多次最短路求解(在这个问题里是不会超时的。也因为这个交易是单向的,所以用DFS搜索也挺方便的。Dijkstra解决#include <iostream>#include <algorithm>#include <vector&原创 2020-08-02 16:10:20 · 119 阅读 · 0 评论 -
fzu 2150 Fire Game(双起点BFS)
传送门Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns). At the beginning, each grid of this board is consisting of grass or just empty and then they start to fire all the grass. Firstly they choose two grid原创 2020-07-19 01:52:08 · 160 阅读 · 0 评论 -
poj 1426 Find The Multiple(简单DFS)
传送门DescriptionGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more原创 2020-07-19 01:34:29 · 95 阅读 · 0 评论 -
HDU 3766 Knight‘s Trip(假的搜索题目)
传送门Problem DescriptionIn chess, each move of a knight consists of moving by two squares horizontally and one square vertically, or by one square horizontally and two squares vertically. A knight making one move from location (0,0) of an infinite chess bo原创 2020-07-19 01:20:11 · 150 阅读 · 0 评论 -
hdu 2102 A计划(简单BFS)
传送门Problem Description可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用*表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,原创 2020-07-19 01:09:34 · 113 阅读 · 0 评论 -
poj 1321 棋盘问题(简单DFS)
传送门Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中 #原创 2020-07-19 00:54:44 · 1211 阅读 · 0 评论 -
POJ 3126 Prime Path(简单BFS)
传送门DescriptionThe ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room numbers on their offices.— It is a matter of security to change such things every now an原创 2020-07-14 11:01:18 · 135 阅读 · 0 评论 -
HDU1035 Robot Motion(简单DFS)
传送门Problem DescriptionA robot has been programmed to follow the instructions in its path. Instructions for the next direction the robot is to move are laid down in a grid. The possible instructions areN north (up the page)S south (down the page)E east原创 2020-07-13 23:02:41 · 111 阅读 · 0 评论 -
HDU2563 统计问题(水水水DFS)
传送门Problem Description在一无限大的二维平面中,我们做如下假设:1、 每次只能移动一格;2、 不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);3、 走过的格子立即塌陷无法再走第二次;求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。Input首先给出一个正整数C,表示有C组测试数据接下来的C行,每行包含一个整数n (n<=20),表示要走n步。Output请编程输出走n步的不同方原创 2020-07-13 22:49:35 · 135 阅读 · 0 评论 -
POJ3278 Catch That Cow(水BFS)
传送门Language:DefaultCatch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 167289 Accepted: 51138DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N原创 2020-07-13 22:46:26 · 87 阅读 · 0 评论 -
HDU1253胜利大逃亡(简单BFS)
传送门Problem DescriptionIgnatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡里,城堡是一个ABC的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算出Ignatius能否在魔王回来前离开城堡(只要走到出口就算离开城堡,如果原创 2020-07-13 22:34:13 · 118 阅读 · 0 评论 -
HDU1010 Tempter of the Bone(DFS奇偶剪枝)
传送门Problem DescriptionThe doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized that the bone was a trap, and he tried despera原创 2020-07-13 22:10:47 · 158 阅读 · 0 评论 -
DFS-回溯与剪枝-C - N皇后问题
我又来啦!继续搬我自己的博客,平时找题解的时候都是在csdn,所以自己补提发博客也想就近发在这边,这才想把原博客园的一些文章搬过来。C - N皇后问题在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不.原创 2020-07-13 01:38:06 · 170 阅读 · 0 评论 -
BFS-八数码问题与状态图搜索
又是勤勤恳恳搬博客的一篇,原博客园BFS-八数码问题与状态图搜索,PigySu就是我本人,对,上一篇博客有解释。在一个3*3的棋盘上放置编号为1~8的八个方块,每个占一格,另外还有一个空格。与空格相邻的数字方块可以移动到空格里。任务1:指定的初始棋局和目标棋局,计算出最少的移动步数;任务2:数出数码的移动序列。 把空格看成0,一共有九个数字。 输入样例: 1 2 3 0 8 4 7 6 5 1 0 3 8 2 3 7 6 5 输出样例: 2 1.把一个...原创 2020-07-13 01:37:06 · 556 阅读 · 0 评论