随笔分类 -  数据结构->线段树

摘要:题目描述 题解: 线段树维护dfs序。 貌似是裸题。 代码: 阅读全文
posted @ 2018-12-21 13:03 LiGuanlin 阅读(161) 评论(0) 推荐(0)
摘要:题目描述 题解: 最开始我想倒建倒查,结果发现需要另开线段树维护,结果算法退化了…… 说正解。 正建正查。 线段树合并+SAM。 将询问串放在SAM中,判断是否有匹配。 然后设定边界就可以了。 代码: 阅读全文
posted @ 2018-12-15 10:13 LiGuanlin 阅读(216) 评论(0) 推荐(0)
摘要:题目描述 题解: 好神啊 建出后缀自动机,然后处理每个点parent树子树中endpos的数量,若为1即可成为识别子串。 对于每个点维护原串所在位置以及right的最小值mn。 然后套上线段树维护区间最小值。 基本就这样了。 代码: 阅读全文
posted @ 2018-12-11 18:38 LiGuanlin 阅读(144) 评论(0) 推荐(0)
摘要:题目描述 永无乡包含 n 座岛,编号从 1 到 n ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以 到达岛 b ,则称岛 a 和岛 b 是连通 阅读全文
posted @ 2018-10-21 11:54 LiGuanlin 阅读(219) 评论(11) 推荐(0)
摘要:题目大意:给出n个数的数列,其中保证1<=ai<=n,使其分成m份,使得每一段字符集大小相加最大,求最大值。 考场上跪了,回来一想发现是线段树维护dp: 原dp:dp[ i ][ j ] = max ( dp[ j ][ k-1 ] + num[ j+1 ][ i ]); 然后发现线段树可以维护,即 阅读全文
posted @ 2018-10-02 11:17 LiGuanlin 阅读(141) 评论(0) 推荐(0)
摘要:题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi。同一时间可能有多个任务同时执行,它们的优先 阅读全文
posted @ 2018-09-05 09:13 LiGuanlin 阅读(114) 评论(0) 推荐(0)
摘要:求给出矩形的周长。 这是一道周长扫描线题,比较裸。juruo第一次打打了一个多小时。 代码: 阅读全文
posted @ 2018-09-04 00:28 LiGuanlin 阅读(220) 评论(0) 推荐(0)
摘要:题目大意:给出一段区间,求所求区间中出现次数超过区间长一半的数,若没有则输出0。 主席树的题吖…… 可以说很裸了。 代码: 阅读全文
posted @ 2018-09-04 00:25 LiGuanlin 阅读(87) 评论(0) 推荐(0)
摘要:题目不难,树上可持久化数据结构。 帖代码: 阅读全文
posted @ 2018-09-04 00:21 LiGuanlin 阅读(109) 评论(0) 推荐(0)
摘要:题目大意:给出n个地点和q个询问。其中每个地点有距离和权值,每个询问给出l,r,k,表示在[l,r]区间内不取最小点的情况下任取k个,求所有情况权值之积之和(n,q<=1e5,k<=6)。 能看出来是区间操作,先考虑树状数组,发现维护比较难。于是用线段树维护。 每个节点记录7个值,分别为minv和不 阅读全文
posted @ 2018-09-03 20:07 LiGuanlin 阅读(195) 评论(5) 推荐(0)
摘要:我之前考试是遇到过这题,但是数据范围k<=20,状压就能过。 结果原题范围k<=100000…… 果断线段树合并。 普及线段树合并: 比如两个相同大小的线段树,将b树各个区间上的值合并到a树上,从树根开始合并,然后递归合并左右儿子,有三种情况: (假设现在a树遍历到x点,b树遍历到y点) 1.x,y 阅读全文
posted @ 2018-09-01 19:16 LiGuanlin 阅读(285) 评论(0) 推荐(0)