![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 88
ToRe.
这个作者很懒,什么都没留下…
展开
-
A Simple Problem with Integers(线段树 || 树状数组)
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 129659 Accepted: 40232Case Time Limit: 2000MSDescriptionYou have N integers, A1, A2, ... , AN. You need to deal...原创 2018-04-30 11:43:08 · 189 阅读 · 0 评论 -
洛谷 P3384 树链剖分
题目链接思路树链剖分板子题。比普通的DFS序多维护了点东西。下面是一些概念重儿子:对于每一个非叶子节点,它的儿子中 儿子数量最多的那一个儿子 为该节点的重儿子轻儿子:对于每一个非叶子节点,它的儿子中 非重儿子 的剩下所有儿子即为轻儿子叶子节点没有重儿子也没有轻儿子(因为它没有儿子。。)重边:连接任意两个重儿子的边叫做重边轻边:剩下的即为轻边重链:相邻重边连起来的 连接一条重儿...原创 2019-04-29 15:16:55 · 143 阅读 · 0 评论 -
CHOJ 4302 Interval GCD(线段树+树状数组)
题目链接题意区间修改,区间查询GCD思路难点,区间添加一个值,直接维护gcd需要全部递归到底层,lazy也不好整,导致时间复杂度高。gcd(x,y,z)=gcd(x,y−x,z−y)gcd(x,y,z) =gcd(x,y-x,z-y)gcd(x,y,z)=gcd(x,y−x,z−y) 对任意多个数成立根据上面公式,可用线段树维护一个差分数组,即可将区间修改变成单点修改。用树状数组区间...原创 2019-04-15 12:28:07 · 162 阅读 · 0 评论 -
SP1716 GSS3 - Can you answer these queries III(线段树)
题目链接题意nnn 个数 mmm 次操作,输入格式 k,x,yk,x,yk,x,yk=0k = 0k=0 表示修改第 xxx 数为 yyyk=1k = 1k=1 表示查询 xxx 到 yyy 直接最大子段和思路线段树维护每个区间四个值当前区间总和当前区间靠左端连续的最大值当前区间靠右端连续的最大值当前区间的答案pushup和query函数见代码代码#include <...原创 2019-04-15 11:04:22 · 116 阅读 · 0 评论 -
Codeforces 893F Subtree Minimum Query(线段树合并,合并总结)
题目链接题意给你一颗有根树,每个节点有个权值,查询多组,强制在线,每次查询某个节点 ppp 深度不超过 qqq 的子树中最小权值是多少。思路给每个节点权值建立一颗线段树,线段树维护深度范围的最小权值。据说挺模板的?代码#include <bits/stdc++.h>using namespace std;void debug() { cout << endl...原创 2019-04-18 10:37:41 · 280 阅读 · 0 评论 -
洛谷 3605 [USACO17JAN]Promotion Counting晋升者计数(线段树合并)
题目链接题意一颗树,每个节点有个权值。对于每个节点,求子树中存在多少节点大于他的权值思路先离散化,对每个节点建线段树,从叶子节点开始合并,求值。代码#include <bits/stdc++.h>using namespace std;const int N = 100005;const int NN = 100005*30;int a[N], ans[N],...原创 2019-04-16 11:10:01 · 190 阅读 · 0 评论 -
Codeforces 915E Physical Education Lessons(线段树动态开点)
题目链接题意初始 [1,n][1,n][1,n] 为 111,111 表示你需要工作,然后 qqq 行操作。每次操作可以将某个区间 111 变为 000,或者 000 变为 111,求每次操作后存在多少个 111思路线段树动态开点裸题,离线离散化应该也可以吧。动态开点相比普通线段树,多维护每个节点的左右儿子,用到某个点才给他开辟空间。所以区间修改肯定要lazy一下,否则和没开一样。...原创 2019-04-16 08:31:48 · 144 阅读 · 0 评论 -
POJ 2482 Stars in Your Window(线段树)
题目链接题意一个直角坐标系上有许多点,每个点都有一个权值。选择一个 www 宽度,hhh 高度的矩阵,能框住最大权值是多少。(在框边缘的不算)思路在框边缘的不算,可以将可覆盖区域边长减小1,边缘就能被包含了。固定点可以知道每个框的右边缘、上边缘需要在的范围。用扫描线的思想,将每个点拆分 <x,y,y+h−1,权值><x,y,y+h-1,权值&...原创 2019-04-15 17:09:28 · 151 阅读 · 0 评论 -
HDU 4366 Successor(DFS序+线段树)
题目链接题意公司里的每个员工都有一个忠诚度和能力值。如果把一个员工开除,需要在他的下属中,找到一个能力值比他高,且忠诚度最大的员工来替代他。第一行一个整数,表示测试数据组数。对于每组数据,第一行两个整数n和m,表示公司的员工数和查询数。接下来n-1行,第i行,3个整数,i的上级,忠诚度,能力值。老总的编号为0,所有员工的忠诚度都不一样。接下来m行查询,每行一个整数,表示要开除某个人,...原创 2019-01-18 11:40:40 · 136 阅读 · 0 评论 -
Codeforces Round #530 (Div. 2) F. Cookies(树形DP+线段树)
题目链接题意给你一棵树有n鸽节点,节点编号1-n,每个节点上有xi鸽饼干,每个节点上吃饼干吃一块需要pi时间再给你每个节点的父亲,和经过这条边所花费时间刚开始你在起点,两个人轮流进行以下步骤,你先手你:移动到子节点,或者结束游戏并移动到根节点,选择性吃沿途饼干对手:删一条你所在节点到儿子的边,或者什么都不做你现在有T的时间求最多能吃多少饼干。思路从根节点开始深搜,对当前点求当...原创 2019-01-07 12:25:09 · 460 阅读 · 0 评论 -
NYOJ 士兵杀敌系列
士兵杀敌(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示南将军询...原创 2018-04-25 16:16:47 · 182 阅读 · 0 评论 -
BZOJ 2957 楼房重建(线段树)
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的...原创 2018-05-09 11:33:21 · 187 阅读 · 0 评论 -
ZOJ 1610 Count the Colors(线段树)
Count the ColorsTime Limit: 2 Seconds Memory Limit: 65536 KBPainting some colored segments on a line, some previously painted segments may be covered by some the subsequent ones.Your task is coun...原创 2018-05-02 11:39:28 · 150 阅读 · 0 评论 -
POj 2763 Housewife Wind(树链剖分)
题目链接题意给你一个 nnn 个节点的树,树有边权,初始位置在 sss ,有两个操作求当前位置到目标位置最短路长度,并更新当前位置更改某条边边权思路树链剖分下,帮每条边权放在其两个连接点深度较大的节点上。然后线段树单点修改,区间查询,每次查询减去公共祖先的权值即可。vector 建图超时(可能我代码丑代码#include <stdio.h>#include &l...原创 2019-08-06 11:34:29 · 117 阅读 · 0 评论