线段树
卧室踩被
The weakest OIer
展开
-
POJ 3468 A Simple Problem with Integers
DescriptionDescriptionDescription给出长度为nnn的数列a,a,a,对于aaa有两种操作,,,区间修改(给区间[l,r][l,r][l,r]加上kkk)和区间查询(查询[l,r][l,r][l,r]的和)SolutionSolutionSolution1.1.1.线段树模板(((2.2.2.树状数组u1s1u1s1u1s1线段树模板没啥好说的主要是树状数组【模板】树状数组 2里讲了差分数组区间修改那么区间查询怎么做令ti=ai−ai−1,t_i=a_i-a_原创 2020-11-06 11:49:09 · 128 阅读 · 0 评论 -
洛谷 P3373 【模板】线段树 2
DescriptionDescriptionDescription如题,已知一个数列,有下列三种操作:操作1:将某区间每一个数乘上 xxx操作2:将某区间每一个数加上 xxx操作3:查询某区间每一个数的和SolutionSolutionSolution线段树模板和【模板】线段树 1差不多只不过操作2要处理一下有两个下传标志add, muladd,\ muladd, mul区间加对于区间加,每个就直接加就好了,也就是:::a[now].add = 原创 2020-11-02 07:20:26 · 161 阅读 · 0 评论 -
JZOJ Day4 B组 T1【五校联考1day1】线段树什么的最讨厌了
题目大意:给定区间[L,R][L,R][L,R]问一个最小的nnn使得区间[L,R][L,R][L,R]存在于一棵根节点为[0,n][0, n][0,n]的线段树中解题思路:可以发现 [L, R] 的父节点代表的区间至多有 4 种,分别为 [L,2R−L],[L,2R−L+1],[2L−R−2,R],[2L−R−1,R],[L, 2R−L], [L, 2R−L+ 1], [2L−R −...原创 2019-01-24 21:31:40 · 144 阅读 · 0 评论 -
JZOJ Day 3-B组-T3——寻找神格
题目大意:成为一个神后,最大的责任便是保护神界的人民,他们都出生在神界,但并不都具有神的实力。当然,神界人族的内部也有战争,他们一共分为N个部落,每两个部落之间都有可能发生战争。为了不然神界人族因为战争而损失惨重,神界的诸神将这些部落编号为1 ~ N,当这些部落的人数差距太大时,诸神便会降临,将一些部落的人带走,并放一些在别的部落中。而衡量所有部落人数差距的数值便是方差。接下来,Ta会告诉你一些...原创 2019-01-24 19:51:03 · 100 阅读 · 0 评论 -
Can you answer on these queries III
题目大意:给定长度为N的数列A,以及M条命令 两种操作 1.”1 x y”查询区间[x,y]中最大连续字段和并输出 2.”2 x y”把A[x]改成y解题思路:很烦 码了两个小时 线段树 我们除了区间端点,区间的l&r,再维护4个信息:区间和sum,区间最大连续字段和d(at),紧靠左端的最大连续字段和lmax,紧靠右端的最大连续字段和rmax 核心: t[n...原创 2018-08-21 22:03:05 · 567 阅读 · 4 评论 -
A Simple Problem with Integers
题目大意:给定一个长度为N的数列,输入Q行操作指令。指令有两种: 1.“C l r d”,区间A[l~r]都加上d 2.“Q l r”,查询区间A[l~r]每个数的和并输出解题思路:线段树模板啊~~~~Accepted code:#include<cstdio>#include<algorithm>#define ls (now<<...原创 2018-08-23 08:37:58 · 97 阅读 · 0 评论 -
洛谷 线段树 1 模板
题目大意:已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和并且输出前言:这道题有点恶心,我觉得线段树的题都恶心我打了两个小时,这还只是一道模板。后来我看了一看洛谷题解,发现一堆其它解法,赞最多的那一篇线段树的题解写的很好,不过代码有点恶心,个人觉得线段树的代码都恶心于是到我了线段树:然后讲一下线段树吧主要操作:1.建...原创 2018-08-22 21:09:30 · 317 阅读 · 0 评论 -
Interval GCD CH4302
题目大意:给定一个长度为N的数列A,以及M条指令 (N≤5*10^5, M<=10^5),每条指令可能是以下两种之一: “C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。 “Q l r”,表示询问 A[l],A[l+1],…,A[r] 的最大公约数(GCD)解题思路:线段树+GCD = 正解 GCD 更相减损术 | (扩展)欧几里得算法 ...原创 2018-08-22 20:41:22 · 365 阅读 · 0 评论 -
摊位预订
题目大意:约翰的N(l解题思路差分 贪心 线段树 前缀和 我用的差分 对于一段时间的维护,原本需要将这一段时间都标记上这头牛,但经过差分后就只用标记两个端点,这样时间复杂度就降下来了。然后输出就直接暴力枚举。Accepted code:#include<bits/stdc++.h>#define LL long long#define res re...原创 2018-08-15 08:42:32 · 151 阅读 · 0 评论 -
圣章-精灵使的魔法语 C组模拟赛
题目大意:给定一个括号序列,每个’(‘和右边的’)’匹配,如()(())就是一个合法的序列,()))((就是一个不合法的序列,问最少在最左边添加几个’(‘和在最右边添加几个’)’解题思路:用线段树维护lk和rk lk[i]表示第i个节点多出多少左括号(需要多少右括号) rk[i]表示第i个节点需要多少左括号(多出多少右括号) 然后每次查询要用log n左右的时间,然后m个...原创 2018-07-12 21:29:25 · 139 阅读 · 0 评论 -
轻轨 C组模拟赛
题目大意:有N(1<=N<=20,000)个站点的轻轨站,有一个容量为C(1<=C<=100)的列车起点在1号站点,终点在N号站点,有K(K<=50,000)组牛群,每组数量为M_i(1<=M_i<=N),行程起点和终点分别为S_i和E_i(1<=S_i<E_i<=N) 计算最多有多少头牛可以搭乘轻轨。解题思路:贪心+线段树维...原创 2018-07-12 07:50:59 · 174 阅读 · 0 评论 -
线段树练习4
题目大意:已知一条长度为L的线段,在这条线段上加n条线段,问x到x+1有多少条线段。解题思路:线段树 cover表示当前节点表示的区间里线段的数量 当前节点表示的区间里线段的数量+这个节点的父节点表示的区间里线段的数量+这个节点的父节点的父节点表示的区间里线段的数量+……+根节点表示的区间里线段的数量=这个节点表示的区间有多少条线段源程序:#include&amp;amp;lt;cst...原创 2018-05-12 08:26:24 · 130 阅读 · 0 评论 -
线段树练习3
题目大意:给定一条长度为m的线段,有n个操作,每个操作有3个数字x,y,z表示把区间[x,y]染成颜色z。规定:线段的颜色可以相同。连续的相同颜色被视作一段。询问染色后的线段被分为多少段。解题思路:【线段树】 cover=-1表示该区间由多种颜色组成。cover&gt;=0表示该区间只有一种单一的颜色cover。 和线段树练习2差不多 只是要判断连接在一起的线段颜色是否相同...原创 2018-05-12 08:09:14 · 132 阅读 · 0 评论 -
线段树练习2
题目大意:与线段树练习1差不多,只不过是求看到的盒子的数量(被挡住的盒子不算,假设人的视线就是那道平行光)解题思路:线段树 给每个盒子染上不同的颜色,最后统计除了0之外能看到的颜色有多少种就可以了。 cover=-1 表示该区间有多种颜色的盒子 cover&gt;=0 表示该区间只有 cover 单种颜色源程序:#include&lt;cstdio&gt;usi...原创 2018-05-11 21:49:17 · 138 阅读 · 0 评论 -
线段树练习1
题目大意:桌子上零散地放着若干个盒子,桌子的后方是一堵墙。如右图所示。现在从桌子的前方射来一束平行光, 把盒子的影子投射到了墙上。问影子的总宽度是多少? 数据范围: l表示墙的长度 1&lt;=l&lt;=100000 n表示盒子数量 1&lt;=n&lt;=100000 数据保证盒子的坐标解题思路:线段树 用cover记录当前区间是否有盒子,1表示有,0表示没有被完全覆盖。...原创 2018-05-11 21:36:44 · 182 阅读 · 0 评论