[GDOI2015]推箱子(状压bfs) 题面 题面过长,略 分析 观察到$m \times m =64 $,那么可以把箱子的01状态压到一个 里面 然后对于地图上的每一个点$(x,y)$,预处理出左上角在$(x,y)$,边长为$m$的正方形的01状态。如果这个状态和箱子的状态按位与的结果为0,那么 ...
分类:
其他好文 时间:
2020-03-01 19:44:26
阅读次数:
72
BFS: 1. 所需空间是指数级别的,大 2. 自己开队列存,不会有爆栈的风险 3. 能最先搜出最短路径长的结果 DFS: 1. 所需空间和深度成正比,小 2. 直接用递归栈的话,有爆栈的风险。C++给分配的栈空间大概就4M,所以大概可以搜10万层 3. 不能先搜出最短路径长的结果 4. 直接用递归 ...
分类:
其他好文 时间:
2020-03-01 12:23:14
阅读次数:
122
题目链接:https://vjudge.net/problem/POJ-2110 题目描述:让你从图中选出一条从左上角到右下角的路,求这条路上最大的点和最小的点的差值 因为差值只有0~110,所以我们直接二分一个差值然后在bfs即可 #include<set> #include<map> #incl ...
分类:
其他好文 时间:
2020-02-29 20:46:26
阅读次数:
75
第三次写博客,请多指教! 这篇博客是本人为了回顾思路,各位看官爱看不看(手动滑稽)! http://codeforces.com/contest/1307/problem/D 题目链接 题目大意就是要你从k个特殊点选出两个点连边,问连边之后1到n的最短路距离最大是多少 那么直接说思路,先用bfs找出 ...
分类:
其他好文 时间:
2020-02-28 22:58:23
阅读次数:
63
一、问题: 输入: 6 70 1 1 1 0 0 10 0 1 0 0 0 00 0 0 0 1 0 00 0 0 1 1 1 01 1 1 0 1 0 01 1 1 1 0 0 0 输出: 4 代码: #include<iostream> #include<algorithm> #include< ...
分类:
其他好文 时间:
2020-02-28 18:41:39
阅读次数:
69
负环 https://www.luogu.com.cn/problem/P3385 使用BFS的SPFA算法和普通的SPFA没有什么区别,我们如何判断有没有负环呢?我们有两种判法. 1.记录此点被更新了多少次,更新次数大于N就有负环.这意味着一个点被重复迭代超过N次,显然有负环. 2.记录从S到当前 ...
分类:
其他好文 时间:
2020-02-28 01:31:49
阅读次数:
73
Q:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 A:BFS,偶数层reverse Q:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 A:BFS,比上面还简单,不用reverse( ...
分类:
其他好文 时间:
2020-02-27 19:19:16
阅读次数:
59
但是我们还不是很清楚每一次的状态怎么储存?我们可以用一个结构体,将每次的位置存起来,但是这个程序中用了一个更好的储存方法:我们知道最大的格数是16*16个,也就是256个,那么我们转换为二进制表示就是8位数,那么我们可以使用24位的二进制表示啊!然后我们再进行解压缩,所以这就是很神奇的地方! 普通B ...
分类:
其他好文 时间:
2020-02-24 20:33:32
阅读次数:
90
BFS 求最小 基迭代,不会爆栈 Flood fill算法: 可以在线性时间复杂度内,找到某个点所在的连通块。 //Home键到行首,End键到行尾 AcWing 1097. 池塘计数 AcWing 1098. 城堡问题 AcWing 1106. 山峰和山谷 最短路模型: 所有边权相等时,可以在线性 ...
分类:
编程语言 时间:
2020-02-24 18:54:18
阅读次数:
149
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 题解一:BFS 1 public static ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) { 2 ArrayList<ArrayList<Integer>> re ...
分类:
其他好文 时间:
2020-02-24 14:44:29
阅读次数:
62