03 2018 档案
摘要:用了大约1h搞定了基础的莫队算法。写篇博客算是检验下自己的学习成果。 一.什么是莫队算法? 莫队算法是用来处理一类无修改的离线区间询问问题。——(摘自前国家队队长莫涛在知乎上对莫队算法的解释。) 莫队算法是前国家队队长莫涛在比赛的时候想出来的算法。 传说中能解决一切区间处理问题的莫队算法。 准确的说
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1455 一句话题目做法:并查集合并+01背包 启示:要每次再find一遍。路径压缩会快。因为合并的时候如果是1连3,3连2,4连2,最后也不能保证一步就能连到fa上去。 结果会是fa[2] = fa[3] =
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1195 嗯~我是被题目背景吸引到才做的,想吃棉花糖啦! 话说回来,这道题其实很容易就能想明白,k棵最小生成树。 我们用kruskal的思想,每次连接最小代价的边。假设一开始有n棵树,那么我们每次连接两朵云彩就会
阅读全文
摘要:树状数组(Binary Indexed Tree(B.I.T)) 是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只 能查询其中一个元素的值(如果加入多个辅助数组则可
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P2024 摘吊打集训队的九日dalao一句话 关于带有多个相对集合的全集,我们可以多开几倍的空间。每一倍的元素表示这个当前里的相对元素 那么这道题,既然只有三种关系,我们就可以搞三个并查集来记录不同的关系。 我们
阅读全文
摘要:最近公共祖先(Lowest Common Ancestors): 简称LCA(并不是某轻型战斗机) 一.何为最近公共祖先 对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。(摘自百度百科) 那么举个简单的例子:看图 那么比如14和1
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P3368
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P3374 留个坑,以后补上BIT的讲解,先留下板子复习用
阅读全文
摘要:因为自己搜索弱菜,逼着自己刷搜索 T1 马的遍历: T2 跳马问题: T3 拯救oibh总部 T4 吃奶酪:
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P2298 对于迷宫问题,bfs是比较好的选择。 直接bfs模板
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P2385 莲花池什么的最漂亮啦! 最近刷了两天搜索= =我搜索一直是弱菜 直接套bfs
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P3379 倍增求lca,先存下板子,留个坑以后再填讲解。 in 5 5 43 12 45 11 42 43 23 51 24 5 out 44144
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P3371#sub 堆优化迪杰斯特拉,留着以后复习用
阅读全文
摘要:这里放上历城二中55级衔接班信息奥赛各位的blog传送门 1.彭鲲硕: http://www.cnblogs.com/pks-t 2.王九日: http://www.cnblogs.com/Lance1ot/ 3.王星霖: http://www.cnblogs.com/wxl-Ezio/ 4.梁泽锐
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P2299#sub 裸的迪杰斯特拉(我是在考试前复习一下板子)
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1962 给你篇dalao的blog自己看吧,把矩阵快速幂的板子一改就OK
阅读全文
摘要:这里拿C++一本通(白书第三版)上DFS的课后题12最佳调度问题举例子。(没看过题去自己翻书) 这是光盘里附带的标程: 然后我们拿一组附带的测试数据: in 19 421 60 24 44 81 71 42 9 51 56 41 79 23 60 85 86 72 10 15 out 233 就发现
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P2661#sub 一种利用并查集求最小环的做法: 对于每个同学看作一个点,每次信息传递是一条有向边,当出现最小环的时候就是所求游戏轮数。 那么我们在并查集上进行一些改动,用dep数组来保存路径的长度,即轮数。 如
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1004 标准的DP,不明白为什么有普及+提高的难度 四维DP[i][j][k][l] 表示第一遍走到i,j格子,第二遍走到k,l格子 状态转移方程:max(dp[i-1][j][k-1][l],dp[i-1][
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P3390 首先要明白矩阵乘法是什么 对于矩阵A m*p 与 B p*n 的矩阵 得到C m*n 的矩阵 矩阵乘法满足结合律,但不满足交换律(所以可以套快速幂的板子) 进行矩阵乘法时要么重载*号,或者是写一个矩阵相
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P2731 这个题是欧拉回路的模板题,那么在这里给出一个hierholzer的做法。 对于求欧拉回路的问题,有Fluery算法和Hierholzers算法,两种算法。 后面一种算法无论是编程复杂度还是时间复杂度好像
阅读全文
摘要:这里是kruskal做法 当然prim也可以,至于prim和kruskal的比较: Prim在稠密图中比Kruskal优,Kruskal在稀疏图中比Prim优。
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1536 并查集的运用,可以用生成树的思想,就是n个点生成一棵树需要n-1条边。这样我们先把已有的路连接到一个并查集,并记录数目,最后用n-1减这个数即可。输入n,m时注意一个一个输,这样便于判断n==0
阅读全文
摘要:今天接着昨天的继续讲数据结构 今天先是 分块 在统计问题中,尤其是序列问题,经常涉及到区间的操作,比如修改一段区间的元素,询问某个区间的元素的信息。 如果每次都对一整个区间的每一个元素进行操作的话,那可能就很笨重,所以怎么快速地统计某一段区间的信息就成为了问题所在。 我们考虑把整个序列分成若干个区间
阅读全文

浙公网安备 33010602011771号