线段树合并
forever_shi
但行好事,莫问前程;行你所行,无问西东!
展开
-
洛谷3605 [USACO17JAN]Promotion Counting晋升者计数 线段树合并 离散化
题目链接题意:给你一个n个点的树,每个点有一个点权,问你每个点的子树里有多少个点的权值比当前点的权值小。n<=100000题解:我搜出了是个线段树合并的题,知道该用什么算法之后还是比较好做的了。首先线段树肯定是要建动态开点的权值线段树,由于权值范围很大,所以肯定要先离散化一下。离散化之后,根据建出的树dfs一遍,从下向上合并。我的写法是,先把每个子树的线段树的信息都合并到当前点的...原创 2019-01-17 10:45:33 · 199 阅读 · 0 评论 -
洛谷3899 谈笑风生 线段树合并
题目链接题意:给你一棵n个点的树,边的边权都是1。有q次询问,每次询问给一个a一个x,表示询问满足下列条件的三元组的个数:(a,b,c),使得a和b都是c的祖先节点并且a与b的距离不超过x。n,q<=300000题解:乍一看确实不太好做,如果你没有想到正确的算法的话可能不好做。这个题的做法好像很多,我在这里只介绍一种用线段树合并做的在线做法。我们考虑告诉你了a之后,b和c会是怎么组...原创 2019-01-17 20:59:26 · 373 阅读 · 0 评论 -
BZOJ4919 大根堆 线段树合并 二分 离散化
题目链接题意:给你一棵树,每个点有点权,问你最多能选出多少个点,使得所有选出的点中子节点的权值都比父节点小(严格小于)。点数2e5,权值1e9题解:首先的一个暴力是用一个树形dp,dp[x][i]dp[x][i]dp[x][i]表示点xxx为根的子树内,最大权值是iii时子树内最多选的点数。我们不难发现,随着这个iii的增大,最多选出的点数也是单调不降的。于是我们考虑从子节点转移过来,dp...原创 2019-01-25 20:48:30 · 249 阅读 · 0 评论 -
洛谷4899 IOI2018 werewolf狼人 Kruskal重构树 倍增 线段树合并
题目链接题意:给你一个n个点m条边的无向图,每个点的点权就是它的编号,编号是从0到n-1的,有q次询问,每次问两个点是否能在要求下从起点到达终点,要求是,你可以选择路径上的一个点(可以是起点或者终点),使得起点到这个点之前不能走编号小于l的点,在这之后不能走编号大于r的点。n,m,q都是10510^5105量级的。说明一下,这题本来是个交互题,但是由于洛谷现在并不支持的样子,于是就成立一个传...原创 2019-02-01 13:13:13 · 245 阅读 · 0 评论 -
洛谷4197 BZOJ3545 BZOJ3551 peaks Kruskal重构树 主席树 线段树合并
题面链接题意:给你一个n个点m条边的无向图,边有边权,点有点权。有q次询问,每次问你从x出发,只能经过边权不超过y的边,能到达的所有点中点权第k大的权值是多少,如果不存在就输出-1。n<=1e5,m,q<=5e5BZOJ3551和另外两个题号的题面的区别是多了一个强制在线。题解:先吐槽两句。写这个题真的是心态崩了。这个题本来并不怎么难,但是我却一直RE,过了对拍也没有用。在洛...原创 2019-02-03 14:28:11 · 277 阅读 · 0 评论 -
洛谷4770 BZOJ5417 NOI2018 你的名字 SAM 线段树合并
题目链接题意:给你一个字符串,有若干次询问,每次询问给你一个串和一对(l,r)(l,r)(l,r),问你询问串有多少个本质不同的子串没有在原串[l,r][l,r][l,r]区间内出现过。总询问串长&lt;=1e6&lt;=1e6<=1e6,单个串和原串长&lt;=5e5&lt;=5e5<=5e5题解:好像我NOI网上同步赛这个题爆零了,现在再来做...原创 2019-02-27 11:30:01 · 237 阅读 · 0 评论 -
BZOJ4777 七彩树 线段树合并
题目链接题意:给你一个nnn个点的树,每个点有一个范围是1−n1-n1−n的权值,可能会有重复。每次问你一个点的子树内与它深度差不超过xxx的所有点(包括本身)中出现了多少种不同的权值。强制在线。题解:感觉一看就很线段树合并,因为如果没有不同权值的限制,只问一个点子树内与它深度差不超过xxx的点的个数,就是一个经典的线段树合并的题了。但是现在的问题是他问的是不同的权值个数,这个权值应该怎...原创 2019-03-07 19:47:06 · 205 阅读 · 0 评论