线段树
Wolfycz
这个作者很懒,什么都没留下…
展开
-
算法模板——线段树
线段树作为高级数据结构,可以做非常非常多的事情,那么线段树到底是什么呢,我们就此了解下一.基本概念线段树并非什么特别高级的东西,顾名思义,它也就是一棵树。那么为什么叫线段树呢?因为树的节点上存的就是一些区间,也就是线段。那么它长啥样呢? 嗯,如上图,就是一个区间[1,9]的线段树。有些节点是叶子节点,叶子节点长度为1,不能继续往下分。叶子节点记录的信息是最基本的信息,而其他非叶子节点记录的就是原创 2017-12-07 21:54:03 · 664 阅读 · 0 评论 -
[HAOI2012]高速公路
DescriptionY901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站。Y901高速公路是一条由N-1段路以及N个收费站组成的东西向的链,我们按照由西向东的顺序将收费站依次编号为1~N,从收费站i行驶到i+1(或从i+1行驶到i)需要收取Vi的费用。高速路刚建成时所有的路段都是免费的。政府部门根据实际情况,会不定期地对原创 2017-12-29 15:20:22 · 291 阅读 · 0 评论 -
[Wc]Dface双面棋盘
Description Input Output Sample Input Sample Output HINT 线段树+并查集,暴力记录和更新一些信息,详情见代码注解。#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define inf 0x7f7f7f原创 2018-01-04 21:43:56 · 459 阅读 · 0 评论 -
[SHOI2008]堵塞的交通traffic
Description有一天,由于某种穿越现象作用,你来到了传说中的小人国。小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道路,所以总共有2C个城市和3C-2条道路。 小人国的交通状况非常槽糕。有的时候由于交通堵塞,两座城市之间的道路会变得不连通,直到拥堵解决,道路才会恢复畅通。初来咋到的你决心毛遂自荐到交通部某份差原创 2018-01-04 21:25:19 · 557 阅读 · 0 评论 -
楼房重建
Description小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与原创 2017-12-29 11:59:11 · 456 阅读 · 0 评论 -
Vijos1083 小白逛公园
Description小新经常陪小白去公园玩,也就是所谓的遛狗啦…在小新家附近有一条“公园路”,路的一边从南到北依次排着n 个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了。一开始,小白就根据公园的风景给每个公园打了分 -.-。小新为了省事,每次遛狗的时候都会事先规定一个范围,小白只可以选择第a个和第b个公园之间(包括a、b 两个公园)选择连续的一些公园玩。小白当然希望选出的公园的分数总原创 2017-12-29 11:17:10 · 299 阅读 · 0 评论 -
[Baltic 2001]Mars Maps
DescriptionIn the year 2051, several Mars expeditions have explored different areas of the red planet and produced maps of these areas. Now, the BaSA (Baltic Space Agency) has an ambitious plan: they w原创 2017-12-24 16:57:37 · 638 阅读 · 0 评论 -
ioi1998 Picture
Description在一个平面上放置一些矩形,所有的边都为垂直或水平。每个矩形可以被其它矩形部分或完全遮盖,所有矩形合并成区域的边界周长称为轮廓周长。 要求:计算轮廓周长。 数据规模: 0≤矩形数目<5000; 坐标数值为整数,范围是[-10000,10000]。Input第一横列是墙上所贴的长方形总数。之后每一横列是一个长方形的左下角与右上角的整数坐标。个各坐标的x值在前,y值在原创 2017-12-24 17:07:09 · 641 阅读 · 0 评论 -
[Poi0114]GoldMine金矿
DescriptionByteman作为Byteland的The Goldmine(某一公司厂矿)的最有功的雇员之一,即将在年末退休。为了表示对他的 认真勤恳的工作的承认,The Goldmine的管理层愿意奖励他一小块长方形的矿地,此矿地长和宽为s和w且平行于坐 标系统的轴线。长方形矿地的位置可由他自己选。当然,这块地的价值会随着位置的不同而不同。其价值是指这块 区域内天然金矿石的数量原创 2017-12-29 10:40:57 · 429 阅读 · 0 评论 -
Pku2750 Potted Flower
DescriptionThe little cat takes over the management of a new park. There is a large circular statue in the center of the park, surrounded by N pots of flowers. Each potted flower will be assigned to an原创 2017-12-24 17:33:50 · 292 阅读 · 0 评论 -
[CQOI 2006]线段树之简单题
Description有一个n个元素的数组,每个元素初始均为0。有m条指令,要么让其中一段连续序列数字反转–0变1,1变0(操作1),要么询问某个元素的值(操作2)。例如当n=20时,10条指令如下: Input第一行包含两个整数n,m,表示数组的长度和指令的条数,以下m行,每行的第一个数t表示操作的种类。若t=1, 则接下来有两个数L, R (L<=R),表示区间[L, R]的每个数均反转;若原创 2017-12-24 16:26:36 · 363 阅读 · 0 评论 -
[Heoi2013]Segment
Description要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段。记第i条被插入的线段的标号为i。 2.给定一个数k,询问与直线 x = k相交的线段中,交点最靠上的线段的编号。 Input第一行一个整数n,表示共n 个操作。 接下来n行,每行第一个数为0或1。 若该数为 0,则后面跟着一个正整数 k,表示询问与直线 x = ((k +lastans–1)%3原创 2017-12-06 14:04:12 · 361 阅读 · 0 评论 -
[JSOI2008]Blue Mary开公司
Description! Input 第一行 :一个整数N ,表示方案和询问的总数。 接下来N行,每行开头一个单词“Query”或“Project”。 若单词为Query,则后接一个整数T,表示Blue Mary询问第T天的最大收益。 若单词为Project,则后接两个实数S,P,表示该种设计方案第一天的收益S,以及以后每天比上一天多出的收益P。 1 <= N <= 100000原创 2017-12-02 16:26:05 · 518 阅读 · 0 评论 -
BZOJ 3673 可持久化并查集 by zky
BZOJ 3673 可持久化并查集 by zky原创 2017-07-05 16:26:07 · 278 阅读 · 0 评论 -
Hdu4417 Super Mario(主席树+离散化)
Hdu4417 Super Mario(主席树+离散化)原创 2017-07-05 15:19:11 · 487 阅读 · 0 评论 -
[Usaco2003 Open]Lost Cows
Description N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular display of poor judgment, they visited the neighborhood ‘watering hole’ and drank a few too many beers befor原创 2017-12-10 16:17:47 · 400 阅读 · 0 评论 -
Zju1610 Count the Colors
Description 画一些颜色段在一行上,一些较早的颜色就会被后来的颜色覆盖了。 你的任务就是要数出你随后能看到的不同颜色的段的数目。 Input 每组测试数据第一行只有一个整数n, 1 <= n <= 8000,等于填色的次数 接下来的n行每行有三个非负整数,他们之间用一个空格分开。 x1 x2 c x1和x2表示填色段最左边的点和最右边的点, c表示填进的颜色。 所有原创 2017-12-10 15:33:35 · 408 阅读 · 1 评论 -
算法模板——线段树之Lazy标记
一.前言前面我们已经知道线段树能够进行单点修改和区间查询操作(基本线段树)。那么如果需要修改的是一个区间该怎么办呢?如果是暴力修改到叶子节点,复杂度即为O(n)O(n),显然是十分不优秀的。那么我们能不能向区间查询一样把复杂度降到O(logn)O(log_n)呢?二.算法流程线段树肯定是兹瓷O(logn)O(log_n)修改的,否则发明它有何用处?所以,我我们现在需要知道,如何快速进行原创 2017-12-09 00:23:21 · 1601 阅读 · 1 评论 -
最大连续子数列和
Description 给定一数列,规定有两种操作 一是修改某个元素 二是求子数列的连续最大和。 数列的元素个数最多10万个,询问操作最多10万次Sample Input 4 2 1 2 -3 2 1 3 2 2Sample Output 7非常经典的最大连续子数列和问题。考虑下最暴力的做法,枚举开始点和结束点,再统计其中的答案,O(N3)O(N^3)原创 2017-12-10 17:25:02 · 824 阅读 · 0 评论