
|----线段树
yhf_2015
无。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【BZOJ 4034】 [HAOI2015]树上操作
思路:考虑维护深度,那么子树加的时候相当于加一个与深度相关的等差数列,所以我们每个节点记录一个二元组(a,b)(a,b),表示a×dep+ba\times dep+b,这样每次修改的系数就是相同的a,ba,b了。 总的时间复杂度是:O(qlogn)O(q\log n)代码:#include #include #include #include using namespace原创 2017-04-26 17:09:30 · 427 阅读 · 0 评论 -
【BZOJ 3589】 动态树
思路维护点到跟的路径的权值和,记录二元组(a,b)(a,b)来处理子树加的情况,多条路径的信息合并时,把点按照dfsdfs序排序,每次计算答案的时候只需要减去与上一个点的LCALCA即可。 时间复杂度:O(k×qlogn)O(k\times q \log n)代码原创 2017-04-26 17:07:07 · 470 阅读 · 0 评论 -
【bzoj 1798】[AHOI2009]维护序列
题目描述老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为N的数列,不妨设为a1,a2,…,aN 。有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一段数全部加一个值; (3)询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模P的值。输入输出格式输入格式:第一行两个整数N和P(1≤P≤1000000000)。第二行含有N原创 2016-08-21 02:07:45 · 657 阅读 · 1 评论 -
【vijos 1659】 河蟹王国
线段树裸题。注意:更新的操作一定要在修改之后再进行,否则最大值变小后无法更新。#include using namespace std;#define mid ((l+r)>>1)#define lch (now<<1)#define rch ((now<<1)+1)#define fa (now>>1)const int maxn = 100010;typedef原创 2016-09-21 21:24:55 · 383 阅读 · 0 评论 -
【BZOJ 2325】[ZJOI2011]道馆之战
思路:代码:#include #include #include #include using namespace std;const int maxn = 30010;int n, m;int head[maxn], to[maxn1], nxt[maxn1], cnt;int top[maxn], dep[maxn], son[maxn], sz[maxn],原创 2017-04-20 08:17:34 · 253 阅读 · 0 评论