模板
文章平均质量分 90
Mars_Dingdang
Mars
展开
-
搜索优化——实用的算法,玄学的复杂度
本文主要通过例题讲述搜索的几种优化方式,包括 DFS 的迭代加深,IDAstar,BFS 的优先队列优化,双向 BFS 以及 Astar。一、广度优先搜索1.1 双端队列 BFS例题1 求第 k+1k+1k+1 长边最短路。题目链接由于边权 w≤106w\le 10^6w≤106,可以二分得到第 k+1k+1k+1 长边的最短可能长度。因此,本题转换成了求第 k+1k+1k+1 长边长度为 lenlenlen 的可能性。时间复杂度要求 O(nlogw)O(n\log w)O(nlogw),因此需要原创 2021-04-07 18:00:55 · 620 阅读 · 0 评论 -
树的序列化——浅谈 dfn 与欧拉序列
dfndfndfn 序列定义:dfn[u] 表示 u 在 dfs 时第几个访问到。例如 dfs 序列为 1423, 则 dfn 序列为 1342。特点:祖先总在子孙前子树总是连续段:以 u 为根的子树为区间 [dfnu,dfnu+szu−1][dfn_u,dfn_u+sz_u-1][dfnu,dfnu+szu−1]。不能直接复原出树的结构,但借助 szusz_uszu 可以复原。struct subTree{int L,R;}T[maxn];//子树区间int dfn[max原创 2021-03-06 09:59:39 · 1844 阅读 · 0 评论 -
单调队列——定长区间最值问题
本文同步发表于我的 洛谷博客。一、引入1.1 定长滑窗问题:给出一列 nnn 个正整数,和一个固定长度为 kkk 的滑动窗口, 从左到右在数列中滑动这个窗口,找到数列中每个窗口内的最大值。即对于给定数列 A1∼AnA_1\sim A_nA1∼An (1≤n≤107)(1\le n\le 10^7)(1≤n≤107),求每一个 fi=minj=i−k+1iAjf_i=\min\limits_{j=i-k+1}^{i}A_jfi=j=i−k+1miniAj。二、数据维护2.0 线段树,R原创 2021-02-26 20:23:42 · 601 阅读 · 0 评论