floodfill 1.算法分析 floodfill就是求出连通块的算法,一般可以采用dfs或者bfs,但是dfs容易爆栈,故而采用bfs为佳 2. 例题 acwing1097池塘计数 一块N * M的土地,其中有'W'和'.'组成,'.'为土地,'W'为水,水的八个方向可以连在一起形成池塘,问一块 ...
分类:
其他好文 时间:
2020-07-27 13:37:49
阅读次数:
56
102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] # ...
分类:
其他好文 时间:
2020-07-26 15:44:06
阅读次数:
63
题意: 给出$T$组数据,每组数据给出$N$和$M$,表示接下去$N$行$M$列。 图中“#”代表草,可以点燃;“.”点代表不能点燃;“#”和“.”都以走。 现在需要同时点两把火(位置可以重合),火的燃烧方向是上下左右,可以同时进行(注意!:不是一次只能一个方向,可以同时上下左右)。 若能烧完所有草 ...
分类:
其他好文 时间:
2020-07-26 15:19:03
阅读次数:
49
这个层序遍历要求返回每层的节点,正常的BFS从队列中弹出一个节点后就判断其有没有左子树和右子树,所以直接用BFS实现的话无法分层输出。 需要记录每层的节点数目,增加一个for循环就可以了。 /** * Definition for a binary tree node. * public class ...
分类:
编程语言 时间:
2020-07-25 23:51:28
阅读次数:
72
Escape HDU - 3533 题意: 小A要从$(0,0)\(逃到\)(n,m)$,他的精力值为$d$,每秒可以向东南西北四个方向走一格,或保持原地不动。但无论他是否移动,精力值每秒都会损失1点。路上他会遇到炮塔射击。给定$k$座炮塔的射击方向、射击间隔、子弹速度、坐标。第0秒小A开始逃跑,且 ...
分类:
其他好文 时间:
2020-07-24 21:45:27
阅读次数:
63
给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 来源:力扣(LeetCode)链接:https: ...
分类:
其他好文 时间:
2020-07-24 15:45:50
阅读次数:
53
Eight 题意:八数码问题 思路:反向BFS+康托展开 const int maxn = 362885; const int FAC[] = { 1,1,2,6,24,120,720,5040,40320,362880,3628800 }; int cantor(int* a) {//算出全排列对 ...
分类:
其他好文 时间:
2020-07-24 09:46:19
阅读次数:
77
知识点简单总结——带花树(一般图最大匹配) 前置知识 二分图最大匹配(匈牙利算法) 一般图最大匹配 首先思考一下一般图和二分图的区别在哪里。 很明显二分图没有奇环。 那么只要能处理好奇环的结果就好。 首先像匈牙利算法一样每次选择一个点开始匹配并进行一次新的黑白染色,起点为黑色。 进行bfs,用队列处 ...
分类:
其他好文 时间:
2020-07-23 15:45:31
阅读次数:
74
##题面 在一个3×3的网格中,1~8这8个数字和一个“X”恰好不重不漏地分布在这3×3的网格中。 例如: 1 2 3 X 4 6 7 5 8 在游戏过程中,可以把“X”与其上、下、左、右四个方向之一的数字交换(如果存在)。 我们的目的是通过交换,使得网格变为如下排列(称为正确排列): 1 2 3 ...
https://codeforces.com/contest/1385 本来是练习Java的,后面三道题还是上了C++,顺便学了一遍2SAT。这次可以说是拓扑排序专场,E题用了BFS,G题用DFS,各有千秋,记录一下最后三题。 Problem E 给出一个有向图的边,两种情况:有的边已经指定了方向( ...
分类:
其他好文 时间:
2020-07-23 01:37:40
阅读次数:
61