随笔分类 - 线段树
摘要:NOIP2015推销员 两种做法 : 第一种直接贪心, 第二种线段树. 参考 : https://ac.nowcoder.com/acm/problem/blogs/16493 贪心 : 第 k - 1 次选到的点, 第 k 次一定会选到, 答案是单调递增的. 每多一个点, 就去枚举疲劳值 j. \
        阅读全文
                
摘要:区间最大公约数 gcd + 线段树 本题是可以用单点修改实现的 : 如果我们要求区间的$gcd:gcd(a,b,c,d).$ 根据gcd的推论:$gcd(a,b)=gcd(a,b-a)$在多项中的推广: \(gcd(a,b,c,d)=gcd(a,b-a,c-b,d-c)\) 当我们需要修改一个区间$
        阅读全文
                
摘要:原题 本题每个节点存在两个懒标记add和mul用来更新区间节点的答案. 我们把区间的值sum看成sum = a * mul + add 对于modify操作 如果我们需要对一段区间的所有数乘上d, 相当于: sum = a * mul * d + add * d, 即, 我们只用修改对应mul和ad
        阅读全文
                
摘要:主要有两个操作:push_up 与 push_down. push_up 用子节点来算父节点信息,如:sum = l.sum + r.sum push_down 父节点的修改信息下传到子节点 基本操作 push_up(u) bulid() 将一段区间初始化为线段树 modify 修改 $\left 
        阅读全文
                

浙公网安备 33010602011771号