![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
搜索
做一只大熊猫
让优秀成为一种习惯!
展开
-
C - 哈密顿绕行世界问题 HDU - 2181(bfs+暴力记录路径)
C - 哈密顿绕行世界问题 HDU - 2181(bfs+暴力记录路径)思路这一题我们用bfs来搜索每一条路径,对与正在搜素的某个路径的下一个节点位置我们怎么判断它是否已经走过了?,这做的思路就是对每个节点 我们都给 加一个 vector road; 去存储路径,如果路径road中已经有这个节点那么表 这个节点已经走过了,那么这条路径就重复了,就不要把这个路径压入到 队列q 中了,,,,还有一下剪枝、细节直接看代码吧代码#include<iostream>#include&原创 2020-07-06 12:57:33 · 311 阅读 · 0 评论 -
B - Eight II HDU - 3567(bfs+预处理)
B - Eight II HDU - 3567思路这一题由于是多组输入,如果我们对每一组输入都进行一遍 bfs 这样肯定会T,那么这一题的,奇妙思路就是预处理所有可能产生的终点状态,进行bfs逆向bfs我们假设所以的逆向状态为:“X12345678”,“1X2345678”,“12X345678”,“123X45678”,“1234X5678”,“12345X678”,“123456X78”,“1234567X8”,“12345678X”,对于题目的中给我两个 起始、终原创 2020-07-06 12:47:28 · 230 阅读 · 0 评论 -
A - Eight HDU - 1043(A*算法、双向bfs)
A - Eight HDU - 1043(A*算法、双向bfs)题意给我们 8个数(1,23…)和一个字母x组成的一个序列,让我们通过 上下左右移动x操作,把这个序列变成:1 2 3 4 5 6 7 8 x思路一 双向bfs我们先考虑,什么是 双向bfs ?,简单的说就是,从起点、终点两个方向开始 bfs搜索,这个算法的实现是通过两个队列 q1、q2q1、q2q1、q2, 我们分别把起点、终点的搜索状态 压入q1、q2q1、q2q1、q2,再通过 vis1[ 原创 2020-07-06 11:43:09 · 270 阅读 · 0 评论 -
专题一 简单搜索
专题一 简单搜索所有题目传输门A - 棋盘问题 POJ - 1321思路数据范围 n <= 8, 可以用dfs暴力求解方案数,在dfs 的过程 要注意标记 行 和 列 、以及在回溯的过程中解除标记,还有 在dfs 的时候要注意 避免 重复递归 一些已经递归过的的 情况(在代码中的提现就是修改 每次 递归for的初始化条件)代码#include<cstring>using namespace std;void fre() { freopen("A.txt", "r",原创 2020-06-26 09:52:23 · 816 阅读 · 0 评论