线段树
fnliren
一位无名没脑老年退役oier
展开
-
[bzoj 1012--JSOI2008]最大数
Description 现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取 模,将所得答案插入到数列的末尾。限制:n是非负整数原创 2016-11-07 13:49:18 · 552 阅读 · 0 评论 -
[bzoj 4383--POI2015]Pustynia
给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],…,a[r-1],a[r]里这k个数中的任意一个都比任意一个剩下的r-l+1-k个数大(严格大于,即没有等号)。请任意构造出一组满足条件的方案,或者判断无解。这道题首先运用差分约束的思想,把小的往大的连边,然后拓扑排序...原创 2018-12-09 16:27:57 · 184 阅读 · 0 评论 -
[bzoj 2957]楼房重建
小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与之前的...原创 2018-04-21 09:53:50 · 144 阅读 · 0 评论 -
[bzoj 4552--TJOI2016&HEOI2016]排序
在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序。2:(1,l,r)表示将区间[l,r]的数字降序排序。最后询问第q位置上的数字。这道题思路挺巧妙的。它最后只问一个数...原创 2018-04-12 20:02:18 · 209 阅读 · 0 评论 -
[bzoj 4491]我也不知道题目名字是什么
给定一个序列A[i],每次询问l,r,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串这道题感觉直接做不好搞,便先差分一下,如果差值为负数就为-1,差值为正数就为1,0就为0了。那问题就转化为了求区间内最长连续的1的个数和-1的个数(包括0,因为是不上升或不下降),之后取个max就可以了,思路感觉就和序列操作很像了。重点就是多个值的维护和更新,那这题也没什么了,就解决了。...原创 2018-04-04 08:47:48 · 316 阅读 · 0 评论 -
[bzoj 3252]攻略
众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏。今天他得到了一款新游戏《XX半岛》,这款游戏有n个场景(scene),某些场景可以通过不同的选择支到达其他场景。所有场景和选择支构成树状结构:开始游戏时在根节点(共通线),叶子节点为结局。每个场景有一个价值,现在桂马开启攻略之神模式,同时攻略k次该游戏,问他观赏到的场景的价值和最大是多少(同一场景观看多次是不能重复得到...原创 2018-03-27 19:38:09 · 330 阅读 · 0 评论 -
[bzoj 3747--POI2015]Kinoman
共有m部电影,编号为1~m,第i部电影的好看值为w[i]。 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部。 你可以选择l,r(1<=l<=r<=n),并观看第l,l+1,…,r天内所有的电影。如果同一部电影你观看多于一次,你会感到无聊,于是无法获得这部电影的好看值。所以你希望最大化观看且仅观看过一次的电影的好看值的总和。这道题算挺好的...原创 2018-04-02 19:38:51 · 301 阅读 · 0 评论 -
[bzoj 4551--TJOI2016&HEOI2016]树
在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作:1.标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个结点,可以打多次标记。)2.询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖先)你能帮帮他吗?啊,这道题看到子树修改,便不难想到要dfs序加上线段树。那这道题...原创 2018-03-26 08:56:51 · 172 阅读 · 0 评论 -
[bzoj 3212]A Simple Problem with Integers
You have N integers, A1, A2, … , AN. You need to deal with two kinds of operations.One type of operation is to add some given number to each number in a given interval. The other is to ask for the ...原创 2018-03-25 20:47:27 · 160 阅读 · 0 评论 -
[bzoj 1858--SCOI2010]序列操作
lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[a,b]区间内的所有数全部取反,也就是说把所有的0变成1,把所有的1变成0 3 a b 询问[a, b]区间内总...原创 2018-03-31 11:24:56 · 264 阅读 · 0 评论 -
[bzoj 3211]花神游历各国
这道题一开始用分块写,结果不知是什么,可能写挂了,TLE。(呵呵) 之后便仔细想一想,可以用线段树做,思路跟分块差不多,因为这道题的开根号后是向下取整,所以经过几次开根后这个数就变成了1或0,这样就给它打上一个标记,以后便不用动它,可以省很多时间。这题便就解决了。#include<cstdio>#include<cstring>#include<cmat...原创 2018-03-12 20:25:02 · 643 阅读 · 0 评论 -
[bzoj 1798--AHOI2009&bzoj 5039--JSOI2014]维护序列&序列维护
老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为N的数列,不妨设为a1,a2,…,aN 。有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一段数全部加一个值; (3)询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模P的值。这道题一眼线段树,只不过是要维护两种标记。 不过仔细想一想也挺简单的。 设先乘后...原创 2018-03-11 16:15:04 · 170 阅读 · 0 评论 -
[bzoj 1835--ZJOI2010]基站选址
有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就成它被覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi。现在的问题是,选择基站的位置,使得总费用最小。 输入数据 (base.in) 输入文件的第一行包含两个整数N,原创 2018-01-24 14:16:45 · 271 阅读 · 0 评论 -
[bzoj 3526--POI2014]Card
有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i]。现在,有m个熊孩子来破坏你的卡片了!第i个熊孩子会交换c[i]和d[i]两个位置上的卡片。每个熊孩子捣乱后,你都需要判断,通过任意翻转卡片(把正面变为反面或把反面变成正面,但不能改变卡片的位置),能否让卡片正面上的数从左到右单调不降。这道题很容易想到一个贪心策略,那就是当左端点确定时,最优...原创 2018-12-22 13:41:35 · 273 阅读 · 0 评论