线段树
suclliant
流年笑掷 未来可期
展开
-
K-Master of Graph 长春理工大学第十四届程序设计竞赛
K-Master of Graph 长春理工大学第十四届程序设计竞赛 题目链接:题目传送门 题意:点击上面链接看原题 主要思路: 使用线段树,树中每个节点都保存这个区间内所有数的和。然后后来的操作就是区间更新和区间查询了。 但是如果只是这样的话会超时,还要做一些优化。想一想,如果一个数本身就是一位数(小...原创 2019-07-14 19:42:21 · 86 阅读 · 0 评论 -
线段树
线段树用来维护区间,常用来处理与区间相关的问题。 模版题:敌兵布阵 题意:给一个1到n的区间,以及每个点的初始值,然后会再区间上进行操作:修改区间中某一点的值,以及询问一个区间中所有点的和。 思路:用线段树维护整个区间上的值,然后就是单点更新,以及区间求和。 代码: #include<cstdio> #include<iostream> #define ll l...原创 2019-08-02 11:25:19 · 94 阅读 · 0 评论 -
树链剖分
树链剖分 将树的所有节点按照dfs序组织成线性的链,然后就可以使用线段树来处理这个线性链,这样就可以将原来树上的一些操作转换成线段树上的操作。(注:也可以使用其他数据结构来处理,比如树状数组。到底用什么需要视情况而定,这里附上我之前一篇关于树状数组的博文:树状数组) 简要描述: 1.由于子树中所有节点的编号都是连续的,所以对子树的操作就可以直接转换成对线段树中的一个区间的操作。 2.如果要...原创 2019-08-16 16:23:32 · 91 阅读 · 0 评论