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

摘要:[Codeforces1037H]Security(SAM+线段树合并) 题面 分析 CF什么时候也开始出这种套路题了 和[NOI2018]你的名字几乎一模一样,看到区间串问题,用线段树维护right集合,每次沿着转移边走的时候要判断一下转移到的节点的right集合中是否有在[l,r]内的值. 阅读全文
posted @ 2020-03-16 09:56 birchtree 阅读(230) 评论(0) 推荐(0) 编辑
摘要:[NOI2018]你的名字(后缀自动机+线段树合并) 题面 给出一个字符串S,有q组询问,每次询问给出一个字符串T和整数l,r.问能从T中选出多少个本质不同的子串,满足这个子串在S的区间[l,r]没有出现过。 $|S| \leq 5 \times 10^5,q \leq 阅读全文
posted @ 2020-03-04 22:17 birchtree 阅读(302) 评论(0) 推荐(0) 编辑
摘要:[BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并) 题面 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. n,m1×105,颜色编号 $ 阅读全文
posted @ 2019-08-07 12:21 birchtree 阅读(237) 评论(0) 推荐(0) 编辑
摘要:[Codeforces 1197E]Culture Code(线段树优化建图+DAG上最短路) 题面 有n个空心物品,每个物品有外部体积outi和内部体积ini,如果inioutj,那么j就可以套在i里面。现在我们要选出n个物品的一个子集,这个子集内的k个物品全部套在一起,且剩 阅读全文
posted @ 2019-07-31 10:48 birchtree 阅读(458) 评论(0) 推荐(0) 编辑
摘要:[BZOJ3307] 雨天的尾巴(树上差分+线段树合并) 题面 给出一棵N个点的树,M次操作在链上加上某一种类别的物品,完成所有操作后,要求询问每个点上最多物品的类型。 N, M≤100000 分析 考虑树上差分。对于每条链(x,y),我们在x,y打一个+标记,lca(x,y)和lca(x,y)的父 阅读全文
posted @ 2019-07-23 21:23 birchtree 阅读(295) 评论(0) 推荐(0) 编辑
摘要:[51nod 1681]公共祖先(dfs序+线段树合并) 题面 给出两棵n(n include include include define maxn 100000 define maxlogn 25 using namespace std; int n; struct segment_tree{ 阅读全文
posted @ 2019-07-22 22:12 birchtree 阅读(329) 评论(0) 推荐(0) 编辑
摘要:题面 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b,则称岛 a 和岛 b 是连 通的。 阅读全文
posted @ 2019-05-06 22:20 birchtree 阅读(154) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示