线段树
文章平均质量分 66
LF_本心cy
时间好快好快,转眼间,什么都变了。物是人非,一切都终究归零。
展开
-
借教室
线段树+lazy题目介绍:在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj, sj, tj ,表示某租借者需要从第sj原创 2016-03-21 20:26:42 · 708 阅读 · 1 评论 -
空【NOIP2017提高A组模拟8.24】
题目输入输出Sample Input3 10 100 1 50 50 100Sample Output99数据范围思路比赛时忘记包含的情况,导致样例过不了,心跳炸了。解法设有两条线段i,j。用l与r表示左右端点。 首先按找l排序。 分两种情况: 1.i,j是相交的。 ans=r[j]-l[i]-(r[i]-l[j])=-(r[i]+r[j])-(l[i]+l[j])。 这种情况下,是原创 2017-08-25 11:31:05 · 460 阅读 · 0 评论 -
利普希茨【NOIP2017模拟8.7A组】
题目Input输入文件名为lipschitz.in。 第一行一个整数n。 接下来一行n个整数,描述序列A。 第三行一个数q 。 接下来q行,每行三个整数。其中第一个整数type表示操作的类型。 type=0对应修改操作, type=1对应查询操作。Output输出文件名为lipschitz.out。 对于每个查询,给出f(A[l..r]) 。Sample Input6 90 50 78原创 2017-08-08 09:39:08 · 523 阅读 · 0 评论 -
树的统计【bzoj1036】
总算是A了一道链剖的题目了/(ㄒoㄒ)/~~。 虽然说一开始也是GG了题目Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 I II. QSUM u v: 询问从点u到点v的路径上的原创 2017-03-25 10:09:34 · 528 阅读 · 0 评论 -
树链剖分小结
好久没打博客了。。。。。。。。。狗出竞赛。。。关于树链剖分这东西网上大佬们许多解释,我也只是记录自己的学习而已。虽然说连一道题都没有AC_ (:зゝ∠)_。 推荐就不拉网址了,那个新浪博客st开头的作者写的挺好的。正题思想关于树链剖分,说白了就是树上的区间操作,把Segement Tree,BIT,平衡树套在树上而已,只是简单想想思路。树链剖分,自然而然就是将一棵树进行剖解,把其分解成许多条链,对原创 2017-03-13 22:06:03 · 398 阅读 · 0 评论 -
降雷皇 【NOIP2017提高组模拟12.10】
题目降雷皇哈蒙很喜欢雷电,他想找到神奇的电光。 哈蒙有n条导线排成一排,每条导线有一个电阻值,神奇的电光只能从一根导线传到电阻比它大的上面,而且必须从左边向右传导,当然导线不必是连续的。 哈蒙想知道电光最多能通过多少条导线,还想知道这样的方案有多少。样例输入 第一行两个整数n和type。type表示数据类型 第二行n个整数表示电阻。 5 1 1 3 2 5 4样例输出 第一行一个整数表原创 2016-12-14 21:33:42 · 491 阅读 · 0 评论 -
三部曲 【NOIP2016提高A组集训第16场11.15】
题目因为外来的入侵,国王决定在某些城市加派士兵。所有城市初始士兵数量为0。当城市 被加派了k名士兵时。城市i的所有子城市需要被加派k+1名士兵。这些子城市的所有子城市需要被加派k+2名士兵。以此类推。 当然,加派士兵的同时,国王也需要不断了解当前的情况。于是他随时可能询问以城市i为根的子树中的所有城市共被加派了多少士兵。 你现在是国王的军事大臣,你能回答出国王的每个询问么? 样例输入: 第一原创 2016-11-15 22:33:25 · 572 阅读 · 0 评论 -
禅与园林艺术【NOIP2016提高A组集训第8场11.5】
题目上了大学之后,小W和小Z一起报了一门水课,在做作业时遇到了问题。 有一个长度为 n 的数列{ai},为一列树木的美观值。 现在有m 次询问,每次给出三个数l,r和P, 询问对于所有的l <= l’ <= r’ <= r (a[l’] + a[l’ + 1] + … + a[r’]) mod P的最小值样例输入: 第一行为两个正整数n和m,表示数列的长度和询问的个数。 第二行为n个原创 2016-11-07 22:37:13 · 536 阅读 · 0 评论 -
整除【NOIP2016提高A组模拟9.21】
题目麦克雷有一个1~n的排列,他想知道对于一些区间,有多少对区间内的数(x,y),满足x能被y整除 样例输入: 第一行包含2个正整数n,m。表示有n个数,m个询问。 接下来一行包含n个正整数,表示麦克雷有的数列。 接下来m行每行包含2个正整数l,r。表示询问区间[l,r]。 10 9 1 2 3 4 5 6 7 8 9 10 1 10 2 9 3 8 4 7 5 6 2 2原创 2016-09-23 22:13:36 · 618 阅读 · 0 评论 -
Binary 【NOIP2016提高A组模拟8.17】
题目 样例输入: 6 6 8 9 1 13 9 3 1 4 5 2 6 9 1 3 7 2 7 7 1 6 1 2 11 13样例输出: 45 19 21数据范围: 剖解题目被虐,不想说了了QAQ~~思路曾经做过一道类似的题,对于这种情况就是要把每个数拆成二进制去考虑,因为看到了每个数最大是2202^{20},也就是最多只有20位,所以要往这方面想。解法40%:暴力原创 2016-08-18 20:23:10 · 480 阅读 · 0 评论 -
假期
题目经过几个月辛勤的工作,FJ决定让奶牛放假。假期可以在1…N天内任意选择一段(需要连续),每一天都有一个享受指数W。但是奶牛的要求非常苛刻,假期不能短于P天,否则奶牛不能得到足够的休息;假期也不能超过Q天,否则奶牛会玩的腻烦。FJ想知道奶牛们能获得的最大享受指数。 样例输入: 第一行:N,P,Q. 第二行:N个数字,中间用一个空格隔开,每个数都在longint范围内。、 5 2 4 -9原创 2016-07-03 16:14:56 · 1042 阅读 · 0 评论 -
颜料大乱斗【NOIP2016提高A组模拟7.15】
题目 样例输入: 2 2 4 C 1 1 2 P 1 2 C 2 2 2 P 1 2 样例输出: 2 1数据范围: 剖解题目:给一串初始值相同的数,每次操作将一段区间内的数修改成另一个数,中途穿插询问一段区间内数字的个数。思路:明显的区间修改询问,就是线段树咯。解法:1.注意到颜色的种数小于等于30种,我们可以在线段树里开三十个数组表示这段区间的数字情况,然后每次修改时暴原创 2016-07-16 15:28:50 · 508 阅读 · 0 评论 -
烽火传递
题目烽火台又称烽燧,是重要的军事防御设施,一般建在险要或交通要道上。一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息;夜晚燃烧干柴,以火光传递军情,在某两座城市之间有n个烽火台,每个烽火台发出信号都有一定代价。为了使情报准确地传递,在连续m个烽火台中至少要有一个发出信号。请计算总共最少花费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确传递。 样例输入: 第一行:两个整数N,M。其中N表示原创 2016-07-03 16:05:43 · 936 阅读 · 0 评论 -
线段树学习小结
线段树,嗯,是个好东西,可以高效率解决一些区间问题,一般来讲,对于这些问题,RMQ的效率应该是没有线段树高吧?(我不会RMQ,说错别打我(o´・ェ・`o))线段树是一棵完全二叉树,主要用于记录区间,执行区间加减,求和,查询最大最小等一系列操作,时间复杂度一般实在loglog级别的。(以下用最大值为例) 每个区间为left~right。 ———————–主要操作————————– 一:建(造线段原创 2016-06-30 20:55:20 · 343 阅读 · 0 评论 -
树[NOIP2016模拟]
题目 样例输入: 5 5 1 2 1 3 2 4 2 5 Q 2 C 2 Q 2 Q 5 Q 3 样例输出: 1 2 2 1数据范围: 剖解题目:给一棵树,每次会有两个操作,一个是在某一个结点上打下标记,另一个是询问某一个结点它最近的打了标记的祖先。思路:暴力做法是O(1)查询然而却是接近O(n)修改,自然就能朝着log级别的方法去想,就会涉及到一些数据结构原创 2016-07-12 17:55:35 · 279 阅读 · 0 评论 -
种树
题目一条街的一边有几座房子。因为环保原因居民想要在路边种些树。路边的地区被分割成块,并被编号为1..n。每个块的大小为一个单位尺寸并最多可种一棵树。每个居民想在门前种些树并指定了三个号码b,e,t。这三个数表示该居民想在b和e之间最少种t棵树。当然,b<=e,居民必须保证在指定地区不能种多于地区被分割成块数的树,即要求t<=e-b+1。允许居民想种树的各自区域可以交叉。出于资金短缺的原因,环保部门请原创 2016-06-30 15:17:28 · 897 阅读 · 0 评论 -
主席树(不带修改)小结
听这名字如此霸气,学之前感觉很慌。 网上许多教程真的是讲不清楚(估计是我蠢)ε=(´ο`*)))唉。 推荐: 讲解的好的:(https://www.cnblogs.com/Empress/p/4652449.html) 代码较好的:(http://blog.csdn.net/creatorx/article/details/75446472) 水啊。。。。%%%%%o(╥﹏╥)o 正题主原创 2017-11-26 12:09:11 · 415 阅读 · 0 评论