- 博客(5)
- 收藏
- 关注
原创 bfs八数码问题
d.cout(t)是找d中t的个数,如果是第一次出现那么d中那个序列是0,代表是个新的。遍历每个序列可以交换的各种情况,如果是新的就存进队列尾,预备下次它的遍历。现在,给你一个初始网格,请你求出得到正确排列至少需要进行多少次交换。输入占一行,将3×3的初始网格描绘出来。个数字和一个 x 恰好不重不漏地分布在这3×3的网格中。与其上、下、左、右四个方向之一的数字交换(如果存在)。先后与右、下、右三个方向的数字交换成功得解到正确排列。输出占一行,包含一个整数,表示最少交换数。在一个3×3的网格中,1~8这8。
2023-11-27 15:32:01
393
1
原创 BFS简单迷宫问题
给定一个n*m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角(1, 1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角(n, m)处,至少需要移动多少次。数据保证(1, 1)处和(n, m)处的数字为0,且一定至少存在一条通路。输入格式第一行包含两个整数n和m。接下来n行,每行包含m个整数(0或1),表示完整的二维数组迷宫。输出格式。
2023-11-23 16:39:53
29
原创 dfs经典皇后问题
n-皇后问题是指将 n 个皇后放在 n∗n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数n,请你输出所有的满足条件的棋子摆法。输入格式共一行,包含整数n。输出格式每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的棋盘状态。其中”.”表示某一个位置的方格状态为空,”Q”表示某一个位置的方格上摆着皇后。每个方案输出完成后,输出一个空行。数据范围1≤n≤9。
2023-11-21 14:10:44
41
原创 DFS简单的理解
此时满足第一部分,第四层的u==n都为3会输出1 2 3。,然后是与上面输出123的那次一样,又会退回到u=1的那一层然后2,3的标记又会被解除,不一样的是此时的这一层for循环已经循环完毕已经到3了嘛,会在退一层,到u=0那一层,然后是把1给解除,继续for循环也就是path[0] = 2,然后再是标记,一下,在进入与之前一模一样的步骤,最后就把答案给输出来啦。进入第三层递归,此层u=2,同样不满足第一部分,进入for循环,易知道1,2不能用,path[2] = 3,再把3标记,进入下一层递归,
2023-11-20 16:14:42
130
1
原创 dijkstra(迪杰斯特拉)(朴素版)算法超详解
(深入思考:这里自己也是无穷是因为看q[a][b]的实际q[4][4]就是无穷,而一开始的是我们自己设置的dist[1]=0 dist[j]=min(dist[j],dist[t] + q[t][j]);然后第一次进入时,就相当于是从一个虚无走向1这个点,后面的那个(dist[t] > dist[j])条件第一次是用不到的毕竟初始值都是无穷嘛。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。对于第二个for循环,是确定下一个最近的那个点也就是q[a][b]的a的值。
2023-10-18 11:59:24
219
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人