线段树
Lngxling
这个作者很懒,什么都没留下…
展开
-
线段树的应用——hdu2795 Billboard
原题链接hdu2795 BillboardTime Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 24063 Accepted Submission(s): 9918Problem Description At the entrance t原创 2017-08-12 19:14:53 · 261 阅读 · 0 评论 -
POJ - 2029 Get Many Persimmon Trees —— 二维线段树 点更新区间查询
Get Many Persimmon TreesTime Limit: 1000MS Memory Limit: 30000K Total Submissions: 4822 Accepted: 3140 DescriptionSeiji Hayashi had been a professor of the Nisshinkan Samurai ...原创 2018-07-27 19:31:24 · 198 阅读 · 0 评论 -
POJ - 3264 Balanced Lineup —— 线段树 区间差值
Balanced LineupTime Limit: 5000MS Memory Limit: 65536K Total Submissions: 62682 Accepted: 29231 Case Time Limit: 2000MS DescriptionFor the daily milking, Farmer John's N cow...原创 2018-07-27 20:15:35 · 255 阅读 · 0 评论 -
HDU - 4614 Vases and Flowers —— 线段树 二分
Vases and FlowersTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 4540 Accepted Submission(s): 1866 Problem Description Alice is so po...原创 2018-07-27 20:27:35 · 166 阅读 · 0 评论 -
HDU - 4553 约会安排 —— 区间合并
约会安排Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2747 Accepted Submission(s): 783 Problem Description 寒假来了,又到了小明和女神们约会的季节。 小明虽为屌...原创 2018-08-01 09:35:54 · 234 阅读 · 0 评论 -
HDU - 1542 Atlantis —— 扫描线
AtlantisTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17838 Accepted Submission(s): 7219 Problem DescriptionThere are several ancien...原创 2018-08-01 09:47:01 · 168 阅读 · 0 评论 -
HDU - 1255 覆盖的面积 —— 扫描线
覆盖的面积Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7404 Accepted Submission(s): 3732 Problem Description给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域...原创 2018-08-01 09:53:31 · 184 阅读 · 0 评论 -
POJ - 1177 Picture —— 扫描线求周长
PictureTime Limit: 2000MS Memory Limit: 10000K Total Submissions: 13565 Accepted: 7145 DescriptionA number of rectangular posters, photographs and other pictures of the same s...原创 2018-08-01 10:42:42 · 314 阅读 · 0 评论 -
HDU - 3642 Get The Treasury —— 扫描线求体积
Get The TreasuryTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3357 Accepted Submission(s): 1077 Problem DescriptionJack knows that ...原创 2018-08-01 10:50:40 · 198 阅读 · 0 评论 -
SPOJ - DQUERY D-query —— 线段树 离线处理
DQUERY - D-query#sorting #tree English Vietnamese Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j...原创 2018-08-28 11:34:07 · 241 阅读 · 0 评论 -
HDU - 4417 Super Mario —— 线段树 离线处理
Super MarioTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9440 Accepted Submission(s): 3983 Problem DescriptionMario is world-famous ...原创 2018-08-28 11:39:12 · 265 阅读 · 0 评论 -
HDU - 5869 Different GCD Subarray Query —— 线段树 离线处理
题意:问区间L到R之间所有连续子序列的gcd共有多少种思路:和离线处理求区间不同的数的个数类似,先预处理出每个点向左的每个区间可以得到的gcd和最靠右的左端点,要注意的是从一个位置开始不断向左求gcd是一个值不断递减的过程(求的gcd次数越多,得到的结果就越小),所以如果有相同的值一定会连续出现,且第一次出现的一定是最靠右的。预处理之后,将询问离线排序,用map维护每个gcd现在所...原创 2018-09-02 13:35:57 · 240 阅读 · 0 评论 -
HDU - 5726 GCD —— 线段树gcd
题意:求给定区间的gcd和有多少个区间的gcd是这个数思路:前者可以直接用线段树维护出来,后者要预处理出所有区间的gcd的个数预处理时借助线段树,O(n)遍历每个位置,以其为右端点,不断向左查找离它最近的不是它的倍数的位置(它的倍数和它求gcd是不会发生变化的),然后取gcd并记录个数,因为数是1e9很大所以用map存个数很多要用long long#include <...原创 2018-09-05 15:38:24 · 361 阅读 · 0 评论 -
HDU - 5930 GCD —— 线段树gcd
做这个题之前强烈建议先做hdu5726 https://blog.csdn.net/Lngxling/article/details/82424842题意:把某个位置的数改成另一个数,问所有区间能形成的不同gcd的数量思路:如果直接处理一遍所有区间的gcd,复杂度是O(n*logn*logn),再有q个询问,会T,所以要减少处理当改变i位置的数的时候,会影响的只有包括i的区...原创 2018-09-05 16:00:25 · 355 阅读 · 0 评论 -
HDU - 5381 The sum of gcd —— 线段树gcd
题意:求L到R之间所有子区间gcd的和思路:离线处理先预处理出以每个位置为右端点能得到的所有gcd和最近右端点(用线段树或者由上个点处形成的gcd生成都可),离线之后将扫过的点向左的gcd加入能形成这个gcd的区间,用线段树区间更新区间查询来维护#include<bits/stdc++.h>using namespace std;#define ll long...原创 2018-09-06 09:44:16 · 232 阅读 · 0 评论 -
HDU - 5475 An easy problem
题意:初值为1,操作1时乘上后面的数,操作2时除以后面的数作为下标时乘的那个数保证操作2只会对不相同的操作1输出结果模y思路:开始想逆元乘,然后模数不一定有逆元因为操作只有乘法,可以用线段树维护区间乘积,操作2时把前面的值改为1#include <iostream>#include <cstdio>#include <cmath>...原创 2018-09-16 21:25:27 · 173 阅读 · 0 评论 -
HYSBZ - 4551 BZOJ - 4551 树 —— dfs序+线段树
思路:对一个节点打标记,就意味着询问这个节点的子树节点都是这个节点,如果有多个父节点被标记,只需要记录深度最深的那个dfs序遍历树,记录每个点的深度,维护线段树,区间更新点查询,因为我们只要深度最大,所有不用把区间下放,只需要查找整个线段树路径上深度最大的#include <iostream>#include <cstdio>#include <cm...原创 2018-09-16 21:31:35 · 206 阅读 · 0 评论 -
HDU - 5468 Puzzled Elena —— 容斥
题意:每个点的子树上有几个节点与该节点的权值互质思路:首先要明白怎么求一个集合中有多少个数与n互素将集合中的数用算术基本定理分解,记录每个数能形成的所有因子的个数,然后将n分解进行容斥,可以求出与n不互素的个数,总数减掉不互素的个数就是互素的数的个数这个题也一样,只是把集合改成了树上的节点。当我们dfs遍历树时,一定先访问父节点再访问子树,我们分别在访问父节点时和遍历完子树...原创 2018-09-16 21:44:23 · 213 阅读 · 0 评论 -
HDU - 1823 Luck and Love —— 二维线段树 区间查询点更新
Luck and LoveTime Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8470 Accepted Submission(s): 2190 Problem Description世界上上最远的距离不是相隔天涯海角而...原创 2018-07-27 19:24:22 · 283 阅读 · 0 评论 -
ZOJ - 2859 Matrix Searching —— 二维线段树
Matrix SearchingTime Limit: 10 Seconds Memory Limit: 32768 KBGiven an n*n matrix A, whose entries Ai,j are integer numbers ( 1 <= i <= n, 1 <= j <= n ). An operation FIND the min...原创 2018-07-27 19:18:35 · 230 阅读 · 0 评论 -
POJ - 2155 Matrix —— 二维线段树
MatrixTime Limit: 3000MS Memory Limit: 65536K Total Submissions: 32486 Accepted: 11776 DescriptionGiven an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the num...原创 2018-07-27 19:15:08 · 174 阅读 · 0 评论 -
扫描线——求矩形混合面积——poj 1151 Atlantis
扫描线——解决有关多个矩形重叠的问题 扫描线可以有四个方向 思想都是一样的 只是预处理的时候要根据选择的处理 以自下至上为例 每一个矩形 储存其上下两条边 记录边的高度(y) 左右端点(x)和是矩形的上边还是下边 同时开一个数组把所有的端点的横坐标记录下来 我们的线段树中维护的就是这些横坐标在这个数组中的下标(因为坐标可能是小数所以没有办法直接维护) 根据高度从小到大将边和横坐标数组排序 然原创 2017-08-12 19:38:08 · 219 阅读 · 0 评论 -
HDU - 1166 敌兵布阵 —— 点更新 区间查询
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 99877 Accepted Submission(s): 42286Problem DescriptionC国的死对头A国这段时间正在进行军事演原创 2017-09-18 10:55:00 · 2284 阅读 · 0 评论 -
HDU - 1754 I Hate It —— 点更新 区间查询
I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 83692 Accepted Submission(s): 32139Problem Description很多学校流行一种比较的习惯。原创 2017-09-18 10:58:50 · 461 阅读 · 0 评论 -
HDU - 1698 Just a Hook —— 区间更新 区间查询
Just a HookTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 35460 Accepted Submission(s): 17322Problem DescriptionIn the game原创 2017-09-18 11:03:36 · 467 阅读 · 0 评论 -
HDU - 4027 Can you answer these queries? —— 区间更新 区间查询
Can you answer these queries?Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 19065 Accepted Submission(s): 4500Problem Descriptio原创 2017-09-18 12:24:36 · 467 阅读 · 0 评论 -
线段树——区间更新——ZOJ - 1610
原题链接 ZOJ1610 Count the Colors Time Limit: 2 Seconds Memory Limit: 65536 KB原创 2017-08-12 11:43:16 · 243 阅读 · 0 评论 -
线段树——区间合并——hud1540
线段树的区间合并用点更新或者区间更新 求满足条件的最大区间 在线段结构体中维护该节点左侧开始的最大区间 右侧开始的最大区间 最大区间hdu1540原题链接 Tunnel WarfareTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9原创 2017-08-10 20:40:49 · 329 阅读 · 0 评论 -
POJ - 2528 Mayor's posters —— 区间更新 区间查询
Mayor's postersTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 68823 Accepted: 19842DescriptionThe citizens of Bytetown, AB, could not stand that the原创 2017-09-19 23:35:42 · 336 阅读 · 0 评论 -
HDU - 1540 Tunnel Warfare —— 区间合并
Tunnel WarfareTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9906 Accepted Submission(s): 3877Problem DescriptionDuring the原创 2017-09-19 23:42:21 · 411 阅读 · 0 评论 -
HDU - 2795 Billboard —— 点更新 区间查询
BillboardTime Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 24739 Accepted Submission(s): 10155Problem DescriptionAt the entran原创 2017-09-20 21:44:53 · 177 阅读 · 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 ta原创 2017-09-20 22:00:17 · 166 阅读 · 0 评论 -
51Nod - 1287 加农炮 —— 点更新 点查询
1287 加农炮题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题一个长度为M的正整数数组A,表示从左向右的地形高度。测试一种加农炮,炮弹平行于地面从左向右飞行,高度为H,如果某处地形的高度大于等于炮弹飞行的高度H(A[i] >= H),炮弹会被挡住并落在i - 1处,则A[i - 1] + 1原创 2017-09-21 16:51:15 · 266 阅读 · 0 评论 -
HDU - 3074 Multiply game —— 点更新 区间查询
Multiply gameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2946 Accepted Submission(s): 1059Problem DescriptionTired of pla原创 2018-02-05 20:11:50 · 182 阅读 · 0 评论 -
POJ - 2828 Buy Tickets —— 插空
Buy TicketsTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 21897 Accepted: 10734DescriptionRailway tickets were difficult to buy around the Lunar Ne原创 2018-02-06 13:14:51 · 312 阅读 · 0 评论 -
HDU - 5493 Queue —— 插空
QueueTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1436 Accepted Submission(s): 735Problem DescriptionN people numbered f原创 2018-02-06 14:00:24 · 195 阅读 · 0 评论 -
HDU - 5877 Weak Pair —— 线段树 dfs序 离散化
Weak PairTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 4455 Accepted Submission(s): 1297Problem DescriptionYou are given a rooted tree of...原创 2018-03-19 22:27:50 · 226 阅读 · 0 评论 -
CodeForces - 620E —— 线段树 dfs序
E. New Year Treetime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe New Year holidays are over, but Resha doesn't want to throw away the New Year ...原创 2018-03-19 22:38:35 · 270 阅读 · 0 评论 -
CodeForces - 635D Factory Repairs —— 点更新 区间查询
题意:工厂生产产品,开始时每天生产b个,维修连续的k天后变成每天生产a个第di天有需求量为ai的订单,每个订单只能当天生产,不能今天生产的明天卖问若从某天开始维修,能完成的订单里的产品总数思路:用线段树维护,每个节点里分别记录这个区间内修理之前和修理之后能完成的产品总数,询问时分别查询修理前和修理后要注意订单是可以叠加的,点更新时不是赋值是累加#include <...原创 2018-10-02 09:23:39 · 225 阅读 · 0 评论