
线段树
YuanSnowing
未知苦处
展开
-
【Codeforces 482B Interesting Array】线段树
题目传送门 题目大意 给出许多 l、r、q,构造一个数列,满足每一个从 l 到 r 的按位与结果为 q 。 思路 s[i]s[i]s[i]表示第iii个要求,由三个东西组成~ 题目中有所以就不介绍啦(手动滑稽 首先,建立一个数组~ part[i][j]part[i][j]part[i][j]表示我们要求的数列中的第iii个数,二进制第jjj位为几。 因为有10510^5105个限制,每个都修改一遍...原创 2019-07-18 10:02:27 · 146 阅读 · 3 评论 -
【HDU6609 Find the answer】线段树||树状数组维护前缀和
传送门 官方题解是这么说的: 对于第i个位置,怎样选择数字才会使满足条件情况下选择数字数目最少呢?很容易想到,需要选择前i1个数中较大的数字,使其变为0。 基于这个思想,如果我们对于每个位置i都暴力去找最大的前几个数,显然会TLE! 可以注意到,题目可以转化为前i-1个数中最多选出多少个数字和W[i]相加使得其和小于等于m(很容易想到,选择较小的数才会使选的数最多)。转化之后就很容...原创 2019-07-30 10:04:57 · 329 阅读 · 1 评论 -
【51Nod1199 Money out of Thin Air】线段树+一点点树剖
传送门! 一棵有N个节点的树,每个节点对应1个编号及1个权值,有2种不同的操作。 操作1:S x y z,表示如果编号为x的节点的权值 < y,则将节点x的权值加上z。(Single) 操作2:A x y z,表示如果编号为x的节点以及其所有子节点的权值平均值 < y,则将节点x及其所有子节点的权值加上z。(All) 给出树节点之间的关系,进行M次操作,问所有操作完成后,各个节点的权...原创 2019-08-03 10:35:27 · 165 阅读 · 0 评论 -
【51Nod1463 找朋友】线段树+简单离线
给定: 两个长度为n的数列A 、B 一个有m个元素的集合K 询问Q次 每次询问[l,r],输出区间内满足|Bi-Bj|∈K 的最大Ai+Aj 数据约定: n,Q<=100000 m <= 10 0<=A[i]<=1000000000 1<=B[i]<=n 1<=K[i]<=n 保证B[i]互不相等 线段树萌新看到这题就懵了……果然还是不行啊qu...原创 2019-08-03 20:19:10 · 208 阅读 · 0 评论 -
【HDU6638 Snowy Smile】最大子矩阵线段树维护
传送门 题意 给一个非常稀疏的矩阵,求它的最大子矩阵。 思路 首先将纵坐标离散化,然后枚举横坐标的上下限。 将所有点按照横坐标排序,枚举矩形的上边界,建空树,用线段树维护纵向的最大子段和。 对于每个上边界,逐行加入点,每加入一行就相当于是有了下边界,此时线段树维护的最大子段和即为可能的答案。 所有可能的答案还有0求最大值,就是答案啦。 题解 #include<cstdio> #incl...原创 2019-08-07 20:01:29 · 252 阅读 · 0 评论 -
【洛谷P3373 线段树2】乘法加法模板线段树
https://www.luogu.org/problem/P3373 这个模板题可真是有点意思。。。 重点在lazytag上,加 #include<iostream> #include<cstdio> #define MAXN 1000001 #define ll long long using namespace std; unsigned ll n,m,P,a[MAX...原创 2019-10-07 10:01:25 · 319 阅读 · 0 评论