搜索
bfs dfs
Christine_xb
lnsyoier
展开
-
poj2362 square
dfs #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int m,SUM,l; int a[27],vis[27]; int dfs(int pos,int sum_1,int num) { if(...原创 2020-03-05 21:00:00 · 157 阅读 · 0 评论 -
p2277 24点游戏
老师的代码 简单解释一下 #include<iostream> #include<cstdio> #include<cmath> #include<bits/stdc++.h> #include<algorithm> using namespace std; double a[5]; int flag; void dfs(int n,do...原创 2020-03-04 20:04:47 · 459 阅读 · 0 评论 -
p1443马的遍历
就是一道很简单的bfs,我为了练习一下queue类型的函数,第一次没有用数组模拟,直接上代码。 这道题有一个特殊的输出,就是输出宽五行,学习一下。 #include<cstdio> #include<cstring> #include<string> #include<iostream> #include<queue> using nam...原创 2020-02-06 12:26:45 · 166 阅读 · 0 评论 -
双向bfs学习笔记
双向bfs相关整理 双向bfs主要是引入起点和终点一起遍历,并给数组多加一维。因为双向的最短路一定是整体的最短路,即搜索到一个点另一位也已经搜索到,直接输出即可。 双向bfs的好处:考虑广度优先遍历,越到后面的层数,常数越大,如果采用双向bfs这一遍历方式可以使常数大大减小,从而起到降低时间复杂度的作用。 双向和单向的区别在于,可以从终点和起点同时出发,记录每个点是被从起点开始的访问了(开一个vi...原创 2020-02-07 12:13:43 · 366 阅读 · 0 评论 -
p1379八数码难题
这道题就是一个双向bfs的例题,需要用到map判重减少时间复杂度,这一点具体我还没有太明白,等弄明白了在补充上来。 直接上代码 #include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> using namespace std;...原创 2020-02-07 12:26:13 · 215 阅读 · 0 评论 -
p4289移动玩具
#include #include #include using namespace std; typedef long long ll; const int maxn=(1<<16)+5; int s,e,now,temp,f; int h[2]; int t[2]; int v[2][maxn];//存储步数 int q[2][maxn]; void expand(int m,in...原创 2020-02-08 08:50:44 · 142 阅读 · 0 评论