![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AcWing题解
Wheattail
写写博客
展开
-
【AcWing】844. 走迷宫(BFS)
它是把距离为1的点作为一层,距离为2的点作为一层,一层一层的搜索,第一步距离为1的点,第二部距离为2的点。深搜搜的顺序是随机的,深搜能保证搜到终点,但不能保证搜到的路径是最短的。权重为1或相同用bfs搜索最短路径,否则还是用专门的最短路径搜索算法。dp可以看作一种特殊的最短路径,没有环存在的最短路径。宽度优先搜索,可以搜到最短路径。原创 2024-07-07 19:45:32 · 403 阅读 · 0 评论 -
【AcWing】843. n皇后问题
剪纸就是判断当前方案一定不合法了就不往下搜了,把这个枝减掉,直接回溯。原创 2024-07-06 21:26:58 · 423 阅读 · 0 评论 -
【AcWing】842. 排列数字(DFS)
每一次向下探索都一条路走到黑,直到不能走再回溯。DFS是树形结构,深度优先搜索。横线上填和前面不一样的数字。dfs可以算作递归。原创 2024-07-06 21:15:19 · 271 阅读 · 0 评论 -
【AcWing】836. 合并集合(并查集)
基本原理:每个节点存储基本原理:每个集合用一棵树来表示树根的编号就是整个集合的编号.它的父节点,p[x]表示x的父节点。问题3: 如何合并两个集合: p 是x的集合编号,py是y的集合编号。问题2: 如何求x的集合编号: while (p[x]!问题1: 如何判断树根: if (p[x] == x);2.询问两个元素是否在一个集合当中.并查集: 查询时间近乎O(1).1.将两个集合合并.原创 2024-07-04 15:55:32 · 145 阅读 · 0 评论 -
【AcWing】803. 区间合并
【代码】【AcWing】803. 区间合并。原创 2024-07-04 15:37:57 · 279 阅读 · 0 评论 -
【AcWing】835. Trie字符串操作(Trie树)
对每一个字符串,从根节点向下看,如果存在与字符串相同的字符就往下走,如果没有相同的字符就在当前位置增加新的字符子节点,直到字符串完结,在对应节点打一个标记“ * ”,用于表示以当前节点结束存在一个字符串。3.字符串匹配但不存在:查询abcd,走1-2-3-4但是没有*号标记,所以不存在abcd字符串。2.字符串不匹配:查询abcf,走1-2-3-之后不存在字符f,所以不存在abcf字符串。1.查找到:查询aced时,有1-10-11-12-*这条路径,所以存在aced字符串。原创 2024-07-04 15:12:41 · 251 阅读 · 0 评论 -
【AcWing】840. 模拟散列表(拉链法、开放寻址法)
在槽上拉链,平均情况下每一条链可以看作一个非常短的常数,一般情况下时间复杂度很好,可以看作o(1)。处理冲突:处理冲突的方式就是拉链法和开放寻址法。(离散化是极其特殊的哈希方式,需要保序。哈希表算法题有添加和查找操作,不会有删除,删除不是真的删除,而是开一个数组给这个点打标记。mod的取值:x mod?是一个质数,离2的整次幂尽可能远,这样冲突概率最小。,但大的数据范围映射到小的区域,会产生冲突,例如h(5)=2,h(10)=2.开到数据个数的2~3倍的数组冲突比较低,哈希函数h(x):把大的取值范围。原创 2024-06-13 12:34:31 · 326 阅读 · 1 评论 -
【AcWing】839.模拟堆
【代码】【AcWing】839.模拟堆。原创 2024-06-13 10:35:23 · 214 阅读 · 0 评论 -
【AcWing】838. 堆排序
输入一个长度为 𝑛 的整数数列,从小到大输出前 𝑚 小的数。原创 2024-06-13 10:11:00 · 492 阅读 · 0 评论