随笔分类 -  数据结构—线段树

摘要:题目大意: lowbit(x)是x的最低位1 区间修改 ai+lowbit(ai) 区间和查询 n,m<1e5 题解: 一个数x最多加log(x)次lowbitx就会变成2的幂,2的幂加lowbitx相当于x2,标记区间是否都为2的幂,若是则区间每个数x2,不是则暴力修改。 #include<bit 阅读全文
posted @ 2021-09-05 18:58 ANhour 阅读(140) 评论(0) 推荐(0)
摘要:题目大意:给出数组A[],数据范围ni)的最大值... 这似乎是字节跳动的面试题来着... 题解:数组倒着看,对于每个a[j]-j,只要找到一个a[i]+i的最大值就好了。i∈[1,j-1]。所以处理和前缀最大值就可以。时间复杂度为O(n),我当时竟然写的线段树求的区间最大值我个憨批。 #inclu 阅读全文
posted @ 2020-07-25 00:16 ANhour 阅读(301) 评论(0) 推荐(0)
摘要:题目大意: 一棵有根的有点权的树。 每次可以取某个叶子结点到根的路径的点权和。 并把取过的清0.可以取k次,求取到的最大权值。 题解: 贪心+dfs序+线段树 明显每次取叶子到根的路径权值和最大的, 把叶子节点到根的权值建在线段树上。 每次把路径上节点清0。 假如把p节点清0,在p子树中的叶子节点的 阅读全文
posted @ 2017-11-02 19:54 ANhour 阅读(381) 评论(0) 推荐(0)
摘要:上午 T1 立方数 题目描述 LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。 现在给定一个数P,LYK想要知道这个数是不是立方数。 当然你有可能随机输出一些莫名其妙的东西来骗分,因此LYK有T次询问~ 输入输出格式 阅读全文
posted @ 2017-10-29 19:08 ANhour 阅读(443) 评论(2) 推荐(1)
摘要:[HAOI2015]树上操作 传送门 题目大意:三个操作 1:a,b,c b节点权值+c 2:a,b,c 以b为根的子树节点权值全部+c 3:a,b 查询b到根路径的权值和。 题解:树链剖分 操作1 ,2是区间修改,3是区间和。 看题解都提示开long long 了,我也开了,可是整形相乘赋值给Lo 阅读全文
posted @ 2017-10-20 17:37 ANhour 阅读(269) 评论(0) 推荐(0)
摘要:题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径 阅读全文
posted @ 2017-10-17 21:55 ANhour 阅读(238) 评论(0) 推荐(0)
摘要:题解:二分答案。 二分OP最后相交的直线。 代码: 题解:差分约束 (目前不是很理解差分约束最大最小值什么的..但是思路还是会的。 毕竟以前也做过差分约束的裸题...) 设s[i]前0-i时刻一共安排了多少个人..就是前缀和。 有这么几个约束条件。 s[i]-s[i-1]>=0(都前缀和了,肯定大于 阅读全文
posted @ 2017-10-16 21:34 ANhour 阅读(251) 评论(2) 推荐(0)
摘要:括号序列(bracket) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一个括号序列,但这个序列不一定合法。 一个合法的括号序列如下: ()是合法的括号序列。 若A是合法的括号序列,则(A)是合法的括号序列。 若A和B分别是合法的括号序列,则AB是合法 阅读全文
posted @ 2017-10-11 18:50 ANhour 阅读(218) 评论(0) 推荐(0)
摘要:题目描述 Although Farmer John has no problems walking around the fair to collect prizes or see the shows, his cows are not in such good shape; a full day 阅读全文
posted @ 2017-10-06 12:43 ANhour 阅读(237) 评论(0) 推荐(0)
摘要:HDU5692 Snacks Problem Description 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊提供零食的价值。 由于零食被频繁的消耗和补充,零食机的价值v会时常发生变化。小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一 阅读全文
posted @ 2017-09-23 21:38 ANhour 阅读(200) 评论(0) 推荐(0)
摘要:题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。 限制:L不超过当前数列的长度。 2、 插入操作。 语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0 阅读全文
posted @ 2017-09-12 09:46 ANhour 阅读(182) 评论(0) 推荐(0)
摘要:题目大意 一段01序列,0代表没人住,1代表有人住,住房和退房都要求是修改一段连续区间. 求能够安排住房的区间的左端点 题解 线段树 要判断能否住 要维护区间0序列长最大值.和区间0序列最左边的长度和右边长度 代码 阅读全文
posted @ 2017-08-24 10:08 ANhour 阅读(164) 评论(0) 推荐(0)
摘要:传送门 题目大意: 求一段序列,小于当前元素的最大值和大于当前元素的最小值。 从该元素前面的元素找。 题解: 建立线段树维护或者使用双向链表...或stl水过 线段树每次插入一个新值,查询大于它的最小值和小于它的最大值 双向链表有点神...我们知道排序后一个数的前驱就是小于它的最大值 后继就是大于它 阅读全文
posted @ 2017-08-08 21:49 ANhour 阅读(431) 评论(0) 推荐(0)
摘要:传送门 2173 忠诚 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 钻石 Diamond 传送门 2173 忠诚 传送门 2173 忠诚 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 钻石 Diamond 时间限制: 1 s 空间限制: 32000 KB 题目等 阅读全文
posted @ 2017-07-18 21:13 ANhour 阅读(173) 评论(0) 推荐(0)