随笔分类 -  数据结构

UNR#3 Day1——[ 堆+ST表+复杂度分析 ][ 结论 ][ 线段树合并 ]
摘要:地址:http://uoj.ac/contest/45 第一题是鸽子固定器。 只会10分。按 s 从小到大排序,然后 dp[ i ][ j ][ k ] 表示前 i 个元素、已经选了 j 个、最小值所在位置是 k 的最大代价。 #include<cstdio> #include<cstring> # 阅读全文

posted @ 2019-07-12 19:39 Narh 阅读(213) 评论(0) 推荐(0)

左偏树学习笔记
摘要:学习材料:https://wenku.baidu.com/view/029c886d1eb91a37f1115ce5.html 例题1:bzoj 2809 [Apio2012]dispatching 题目:https://www.lydsy.com/JudgeOnline/problem.php?i 阅读全文

posted @ 2019-06-17 10:36 Narh 阅读(142) 评论(0) 推荐(0)

LOJ 2997 「THUSCH 2017」巧克力——思路+随机化+斯坦纳树
摘要:题目:https://loj.ac/problem/2977 想到斯坦纳树。但以为只能做 “包含一些点” 而不是 “包含一些颜色” 。而且不太会处理中位数。 其实 “包含一些颜色” 用斯坦纳树做也和普通的一模一样……只是赋初值的时候,遇到该颜色的点就可以更新一下罢了…… 中位数可以二分。每个点除了 阅读全文

posted @ 2019-05-09 11:03 Narh 阅读(505) 评论(0) 推荐(0)

洛谷 3295 [SCOI2016]萌萌哒——并查集优化连边
摘要:题目:https://www.luogu.org/problemnew/show/P3295 当要连的边形如 “一段区间内都是 i 向 i+L 连边” 的时候,用并查集优化连边。 在连边的时候,如果要连的区间已经有一部分连成这个样子了,就希望跳过这一段。 想倍增那样跳过已经连好的部分。用并查集实现。 阅读全文

posted @ 2019-03-18 15:09 Narh 阅读(308) 评论(0) 推荐(0)

bzoj 4539 [Hnoi2016]树——主席树+倍增
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4539 明明就是把每次复制的一个子树当作一个点,这样能连出一个树的结构,自己竟然都没想到。思维有待加强。 找编号为 k 的点,可以通过给 dfs 序建立对于编号的主席树。可以做一个 s[ i ] 阅读全文

posted @ 2019-02-15 09:18 Narh 阅读(260) 评论(0) 推荐(0)

CF 1093G Multidimensional Queries——线段树(消去绝对值符号)
摘要:题目:http://codeforces.com/contest/1093/problem/G 只好看看题解:https://codeforces.com/blog/entry/63877 主要是把绝对值符号消掉,变成枚举正负。因为答案不会变差,所以不用管符号应该是什么,直接对应地取 max 、 m 阅读全文

posted @ 2018-12-21 00:36 Narh 阅读(306) 评论(0) 推荐(0)

bzoj 4453 cys就是要拿英魂!——后缀数组+单调栈+set
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4453 询问离线,按R排序。 发现直接用 rk[ ] 的错误情况就是前面的某个位置 j 和自己位置 i 的 LCP 长度大于 i 到当前 R 的长度,这时虽然 rk[ j ] < rk[ i ] 阅读全文

posted @ 2018-12-07 15:47 Narh 阅读(148) 评论(0) 推荐(0)

bzoj 1202 [HNOI2005]狡猾的商人——带偏移量的并查集
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1202 带偏移量的并查集。 注意先 find() 再调用 dis !!! 自己的对拍太水了。 阅读全文

posted @ 2018-10-29 22:27 Narh 阅读(97) 评论(0) 推荐(0)

bzoj 3376 [Usaco2004 Open]Cube Stacking 方块游戏——带偏移量的并查集
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3376 带偏移量的并查集。 阅读全文

posted @ 2018-10-29 11:49 Narh 阅读(240) 评论(0) 推荐(0)

bzoj 1657 [Usaco2006 Mar]Mooo 奶牛的歌声——单调栈水题
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1657 阅读全文

posted @ 2018-10-27 09:06 Narh 阅读(132) 评论(0) 推荐(0)

bzoj 1098 [POI2007]办公楼biu——链表
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1098 求补图的连通块大小。与自己没有边的和自己在一个连通块里。 用链表把所有点串起来。先给自己有边的打上标记,删掉自己,然后访问链表里的元素;没有标记的就从链表里删掉并加入栈,对每个栈里的元素 阅读全文

posted @ 2018-10-18 14:34 Narh 阅读(151) 评论(0) 推荐(0)

bzoj 2083 [Poi2010]Intelligence test——思路+vector/链表
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2083 给每个值开一个vector。每个询问挂在其第一个值上;然后枚举给定序列,遇到一个值就访问那个值的vector,把里面的询问序列都向前推进一位,挂在新的值的vector里。 注意不要一边消 阅读全文

posted @ 2018-10-18 11:15 Narh 阅读(134) 评论(0) 推荐(0)

bzoj 4668 冷战——并查集结构
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4668 不路径压缩,维护并查集的树的结构,查询链上最大值。按秩合并就可以暴爬。 阅读全文

posted @ 2018-10-06 22:56 Narh 阅读(119) 评论(0) 推荐(0)

bzoj2743[HEOI2012]采花
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2743 和bzoj1878 HH的项链 一样的思路。一下想到只保留最靠右的两个值。所以把pre的pre删掉。 !仔细思考一下,发现每次加进去的是当前的pre。 阅读全文

posted @ 2018-06-14 23:09 Narh 阅读(139) 评论(0) 推荐(0)

洛谷1527(bzoj2738)矩阵乘法——二维树状数组+整体二分
摘要:题目:https://www.luogu.org/problemnew/show/P1527 不难想到(?)可以用二维树状数组。但维护什么?怎么查询是难点。 因为求第k小,可以考虑记权值树状数组,把比它小的和等于它的(因为可能有多个等于它的)记成1,其余记成0。 然后需要二分。 但一次询问就这么麻烦 阅读全文

posted @ 2018-06-13 08:04 Narh 阅读(200) 评论(0) 推荐(0)

bzoj3631[JLOI2014]松鼠的新家
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3631 树上差分。 因为从根到当前点的差分有种种不方便(需要改孩子们的值;需要处理路径上拐出去的其他边等),所以从叶子到根方向地差分! 注意一下起点不+1,终点+1。 阅读全文

posted @ 2018-06-11 17:15 Narh 阅读(179) 评论(0) 推荐(0)

bzoj1861[Zjoi2006]Book 书架
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1861 Splay模板。 这种写法的建树很好,创建虚拟的1点和n+2点,实际点变成2~n+1,就能自如应对“top”和“bottom”操作了。 一直不太理解Splay里点的角标、值和rank的关 阅读全文

posted @ 2018-06-11 15:24 Narh 阅读(183) 评论(0) 推荐(0)

bzoj1878 [SDOI2009]HH的项链
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 需要离线。 巧妙的树状数组。按 r 递增排序,只让该颜色的最右端贡献1。 还可以用莫队算法。但是没写。 阅读全文

posted @ 2018-06-11 10:55 Narh 阅读(172) 评论(0) 推荐(0)

POJ2828 Buy Tickets
摘要:题目:http://poj.org/problem?id=2828 给出插队的信息(插到当前第几个人后面),求最终的序列。 权值树状数组。 考虑人越靠后优先级越高(如最后一个人的最终位置就是他插入的位置),所以倒序处理。 用1表示还没人在最终的这个位置,0表示有人了。 倒序到i的时候,“ i 插到第 阅读全文

posted @ 2018-04-28 19:33 Narh 阅读(143) 评论(0) 推荐(0)

bzoj2957楼房重建
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2957 线段树。每个点记录斜率,要一个单增的序列长度(从1开始)。 线段树每个点记录自己区间的max和单增长度,pushup的时候通过mx [ ls ]判断往哪个儿子递归。 需要注意的是当右儿子 阅读全文

posted @ 2018-04-28 19:03 Narh 阅读(129) 评论(0) 推荐(0)

导航