摘要: 这篇文章是较于模板的知识,如果想要做题,左转例题篇 定义 树链剖分是什么? 树链剖分指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构来维护每一条链,包含重链剖分、长链剖分和实链剖分,我们平常使用的都是重链剖分。 树链剖分解决了什么? 树上的 阅读全文
posted @ 2019-11-08 23:08 Soledad_S 阅读(145) 评论(0) 推荐(0) 编辑
摘要: Description Input Output Sample Input Sample Output Hint 因为若两个矩阵可以相乘,那么$A[i].y=B[i].x$,故可以把$n$个矩阵的序列拉成$2n-1$数的序列 简单的区间DP,设f[i][j]为$[i,j]$为一个矩阵的最小代价 $f 阅读全文
posted @ 2019-10-26 11:26 Soledad_S 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 题目链接 退役前发文了。 排序和离散都是稳定的一只$log$的做法,这里给大家介绍一种玄学复杂度的数据结构,$hash$表。 $hash$表的思想很简单,将所有对$mod$取模在一个同余类的数用链表串起来 (不要告诉我你不会链表),这样时间复杂度就依赖于$mod$大小。**理论上来说**,$mod$ 阅读全文
posted @ 2019-10-07 21:05 Soledad_S 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 差分与前缀 定义一个序列$a$,它的差分序列为$b_n=a_n-a_{n-1}$(后向差分),前缀和序列为$b_n=b_{n-1}+a_n$,显然,差分与前缀和互为逆运算,这意味着,对差分序列求前缀和就是原序列;同理,对前缀和序列求差分也是原序列。 重要结论 1、如果有了前缀序列,我们就可以O(1) 阅读全文
posted @ 2019-09-27 22:01 Soledad_S 阅读(351) 评论(0) 推荐(1) 编辑
摘要: 倍增是枚举的一种特殊方式。 假如我们有一根数轴,要从1000走到0 我:一步步走就行了,一定会到的 ZHX:SB题,$2^9=512$,从1000跳512步,还剩488;$2^8=256$,从488跳256步,还剩232;$2^7=128$,从232跳128步,还剩104; $2^6=64$,从10 阅读全文
posted @ 2019-09-26 23:54 Soledad_S 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 枚举有什么好写的~( ̄▽ ̄)~ 枚举算法是我们在日常中使用到的最多的一个算法,它的核心思想就是:枚举所有的可能。 枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集合。 没有剪枝,没有优化,没有 阅读全文
posted @ 2019-09-26 23:24 Soledad_S 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 以作者的水平为准 基础算法:枚举——>倍增 差分(前缀和)——>二维 贪心 分治:归并排序(逆序对) 二分答案 二分查找 快速排序——>离散化 递归/递推 搜索:深搜(所有方案),宽搜(最优解) DFS优化:迭代 最优性剪枝/可行性剪枝/搜索顺序 记忆化搜索 折半搜索 A*/IDA* BFS优化:双 阅读全文
posted @ 2019-09-26 22:28 Soledad_S 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意:一个n个节点、m条边的无向连通图。我们依次用l,a描述一条边的长度、海拔。对于接下来Q个询问,每一天Yazid都会告诉你他的出发点v,Yazid需要从v到1,以及当天的水位线p,所有海拔不超过水位线的边都是有积水的。 每一个询问,Yazid在出发点都拥有一辆车。这辆车不能经过有积 阅读全文
posted @ 2019-09-19 23:40 Soledad_S 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题目链接 不会推结论,单调队列万岁!题目大意: 给出若干个等腰直角三角形的顶点,要求有多少个点没有被其他三角形覆盖 先按$x$坐标对顶点排序,单调队列维护所有未被覆盖的点,对于$i$,把它可以覆盖的点从队尾弹出(即队尾元素的左端点≥i的左端点),执行完操作后,如果$i$未被现在的队尾覆盖就入队。 最 阅读全文
posted @ 2019-09-19 13:09 Soledad_S 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 此题理论最优解 题目链接 题目大意:路径修改,子树求和 明显是树剖的模板,但树剖的时间复杂度高达了优秀的$\Theta(Q \;log^2n)$,而实际上树上差分可以把时间复杂度降到$\Theta(Q \;logn)$。 设$tag[x]$为$1$到$x$的路径上全都加了这个值,显然对于$(x,y) 阅读全文
posted @ 2019-09-15 13:05 Soledad_S 阅读(149) 评论(0) 推荐(0) 编辑