
线段树区间合并
数论只会GCD
研二在读
展开
-
UVA 11992 线段树区间更新 + 两个lazy(二维线段树)
传送门:UVA 11992题解 最多有20行, 可以建20棵线段树, 然后更新查询时按维数维护 线段树区间合并, 两个lazy有主次之分(set比add优先) pushDown()和pushUp();/*adrui's submissionLanguage : C++Result : AcceptedLove : llFavorite : Dragon BallsSta原创 2016-10-21 23:15:12 · 607 阅读 · 0 评论 -
UVA 11235 线段树区间合并 & 离散化
传送门 : UVA 11235题意 给定一个长为n的数列, 给定q个查询, 查询[l, r]内出现最多数字的出现次数 题解 常规解法: 线段树区间合并, 需要注意的是, 查询时的区间合并不能忽略 离散化,离散的运用:将连续的相等的一个区间的点集,聚集为线段树的一个节点,并且在这个节点上有信息能体现出这个区间的性质。 code:/* *adrui's submi原创 2016-10-22 23:12:32 · 497 阅读 · 0 评论 -
hihoCoder 1116 计算 线段树 + 区间合并
hihoCoder 1116题解: 线段树区间合并题, 这题需要考虑前缀积(lAns)、后缀积(rAns)、 区间积(multiAns)以及区间ans:∑1 <= i <= j <= n f(i, j的合并. 区间[a, b]和[c, d]合并的时候只要合并两区间各自的ans以及[a, b]的后缀积和[c, d]的前缀积的乘积(因为只有[a, b]的后缀可以和[c, d]的前缀合并), lAns原创 2016-10-08 16:41:27 · 639 阅读 · 0 评论 -
HDU 3308 线段树区间合并 + 单点修改
传送门: HDU 3308题解: 维护最大连续和左右连续 区间合并查询/* adrui's submission Language : C++ Result : Accepted Favorite : Dragon Balls Love : yy Motto : Choose & Quit Standing in the Hall of Fame*/#in原创 2016-11-27 19:35:44 · 415 阅读 · 0 评论 -
HDU 5997 & bestcoder #90 C 线段树
传送门 : HDU 5997题解 最初想过用vector存储, 但是没敢写…. 区间合并 + 成段更新 这题和普通线段树区间更新的区别就是待更新的区间不确定, 所以只要把要更新区间表示出来, 就行了 x -> y找到x代表的vector存储的多个成段区间, 一个个更新, 这些段加到y的段里, 然后清楚x的段 今天水过结果920MS,目前垫底。。。。打不动AC Co原创 2016-12-18 15:55:23 · 646 阅读 · 0 评论 -
SPOJ 1716 GSS3 Can you answer these queries III 线段树区间合并
传送门:SPOJ 1716 题意 求动态区间最大子段和题解 线段树区间合并维护区间和, 左右连续最大字段和, 最大字段和AC code:#include<iostream>#include<cstring>#include<cstdio>using namespace std;typedef long long ll;#define lch(x) x << 1#define r原创 2017-01-17 17:21:04 · 500 阅读 · 0 评论