随笔分类 - 数据结构 -- 线段树
摘要:Description Farmer John自豪于他所经营的交通发达的的农场。这个农场是由N块牧场(2≤N≤50,000)组成的,N 1条双向道路将它们连接起来,每一条道路的都为一单位长度。Farmer John注意到,从任何一块牧场到另一块牧场,都能通过一组合适的道路到达。尽管FJ的农场现在是连
阅读全文
摘要:Description 首先知道A nand B=not(A and B) (运算操作限制了数位位数为K)比如2 nand 3,K=3,则2 nand 3=not (2 and 3)=not 2=5。给出一棵树,树上每个点都有点权,定义树上从a到b的费用为0与路径上的点的权值顺次nand的结果,例如
阅读全文
摘要:Description You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N 1. We will ask you to perfrom so
阅读全文
摘要:前言 首先树链剖分需要使用到线段树知识,不会线段树的童鞋请移步至 "浅谈算法——线段树" 在做题中我们会看到一些“在一棵树上进行路径修改、求极值、求和”的题,乍一看能够用线段树解决,其实仅仅凭线段树是根本无法完成的。这时候,我们就需要用到一种看起来高级的复杂算法——树链剖分 基本概念 重儿子 :si
阅读全文
摘要:Description 初始时滑冰俱乐部有1到n号的溜冰鞋各k双。已知x号脚的人可以穿x到x+d的溜冰鞋。 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人。xi为负,则代表走了这么多人。 对于每次操作,输出溜冰鞋是否足够。 Input n m k d ( 1≤n≤200,000 ,
阅读全文
摘要:Description Input Output Sample Input Sample Output HINT 线段树+并查集,暴力记录和更新一些信息,详情见代码注解。 include include include include include define inf 0x7f7f7f7f us
阅读全文
摘要:Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国。小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道路,所以总共有2C个城市和3C 2条道路。 小人国的交通状况非常槽糕。有的时候由于交通堵塞,两座
阅读全文
摘要:Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,H
阅读全文
摘要:Description Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站。Y901高速公路是一条由N 1段路以及N个收费站组成的东西向的链,我们按照由西向东的顺序将收费站依次编号为1~N,从收费站i行驶到i+1(或从i
阅读全文
摘要:Description 小新经常陪小白去公园玩,也就是所谓的遛狗啦…在小新家附近有一条“公园路”,路的一边从南到北依次排着n 个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了。一开始,小白就根据公园的风景给每个公园打了分 . 。小新为了省事,每次遛狗的时候都会事先规定一个范围,小白只可以选择第
阅读全文
摘要:Description Byteman作为Byteland的The Goldmine(某一公司厂矿)的最有功的雇员之一,即将在年末退休。为了表示对他的 认真勤恳的工作的承认,The Goldmine的管理层愿意奖励他一小块长方形的矿地,此矿地长和宽为s和w且平行于坐 标系统的轴线。长方形矿地的位置可
阅读全文
摘要:Description The 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 o
阅读全文
摘要:Description In the year 2051, several Mars expeditions have explored different areas of the red planet and produced maps of these areas. Now, the BaSA
阅读全文
摘要:Description 在一个平面上放置一些矩形,所有的边都为垂直或水平。每个矩形可以被其它矩形部分或完全遮盖,所有矩形合并成区域的边界周长称为轮廓周长。 要求:计算轮廓周长。 数据规模: 0≤矩形数目 include include include include using namespace
阅读全文
摘要:Description 有一个n个元素的数组,每个元素初始均为0。有m条指令,要么让其中一段连续序列数字反转 0变1,1变0(操作1),要么询问某个元素的值(操作2)。例如当n=20时,10条指令如下: Input 第一行包含两个整数n,m,表示数组的长度和指令的条数,以下m行,每行的第一个数t表示
阅读全文
摘要:Description 给定一数列,规定有两种操作 一是修改某个元素 二是求子数列的连续最大和。 数列的元素个数最多10万个,询问操作最多10万次 Sample Input 4 2 1 2 3 2 1 3 2 2 Sample Output 7 非常经典的 最大连续子数列和 问题。 考虑下最暴力的做
阅读全文
摘要:Description N (2 include include include include using namespace std; const int N=8e3; int tree[N 3+10],a[N+10],ans[N+10]; inline int read(){ int x=0,
阅读全文
摘要:Description 画一些颜色段在一行上,一些较早的颜色就会被后来的颜色覆盖了。 你的任务就是要数出你随后能看到的不同颜色的段的数目。 Input 每组测试数据第一行只有一个整数n, 1 include include include include using namespace std; c
阅读全文
摘要:##一.前言 前面我们已经知道线段树能够进行单点修改和区间查询操作(基本线段树)。那么如果需要修改的是一个区间该怎么办呢?如果是暴力修改到叶子节点,复杂度即为$O(nlog n)$,显然是十分不优秀的。那么我们能不能向区间查询一样把复杂度降到$O(log n)$呢? ##二.算法流程 线段树肯定是兹
阅读全文
摘要:##前言 线段树作为高级数据结构,可以做非常非常多的事情,那么线段树到底是什么呢,我们就此了解下 ##一.基本概念 线段树并非什么特别高级的东西,顾名思义,它也就是一棵树。那么为什么叫线段树呢?因为树的节点上存的就是一些区间,也就是线段。那么它长啥样呢? 嗯,如上图,就是一个区间[1,9]的线段树。
阅读全文