线段树
Joey丶sunk
古今成大事者 不惟有超世之才 亦必有坚忍不拔之志
展开
-
HDU - 2795 Billboard 线段树入门
题意:h * w 的黑板,往上面贴画报,规则是优先选最上面的一行,同行先从左边开始贴画报大小为 1 * x (高为1 长度为 x),问这个海报在第几行思路:以第几行为叶子结点建树,父节点维护这一个区间 (这几行)能够贴的最大长度,然后每次查询进行更新工作#include#include#include#include#include#include#incl原创 2017-11-09 17:10:37 · 219 阅读 · 0 评论 -
POJ - 3468 A Simple Problem with Integers 白书:线段树区间更新+查询
线段树区间更新+查询白书上板子,看清楚有的地方 L 和 1 不清楚#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in freopen("in.txt", "r",原创 2017-11-03 13:35:58 · 263 阅读 · 0 评论 -
ZOJ - 3284 Matrix Processing 线段树区间更新查询
矩阵转化为一维矩阵,进行区间更新和查询板子== 白书上的#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#d原创 2017-11-03 16:14:11 · 311 阅读 · 0 评论 -
ZOJ - 3284 Matrix Processing 标记整行列做法
标记做法这应该是正解吧,对整行整列的需要更新的用另外的两个数组标记,最后查询#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in freopen("in.txt", "r",原创 2017-11-03 16:37:29 · 205 阅读 · 0 评论 -
HDU - 6315 Naive Operations 线段树(多校2-1007)
题意:给定序列a,b;a初始值为0,b是1-n的排列;每次对a序列操作:add L R操作是给a序列 区间【L-R】每个值+1;query L R操作是对区间【L-R】对应的 [a[i] / b[i]](向下取整) 求和;思路:令ans[i] = a[i] / b[i] (向下取整), 首先可以想到,要使ans[i]加一的话,a[i]需要加 b[i] ,这样每时每刻都会存在...原创 2018-07-26 09:45:27 · 144 阅读 · 0 评论 -
HDU-6447 YJJ's Salesman 线段树+推导(维护区间最大值)
题意:给定n个点,每个点有个权值,只有从这个点的左下方45°上来,才能获得这个点的权值,每次只能从某个点往上走一格或往右走一格,或往右上走一格,问:找一条路径,使获得权值最大; 思路:首先我们能够想到对于A点(x1,y1),它的最优值应该是由某个 B点(x2,y2) && x2<x1 && y2<y1 得来的,如果遍历的话...原创 2018-08-25 21:27:00 · 300 阅读 · 0 评论 -
HDU - 6249 Alice’s Stamps dp+线段树+讲解
题意:给定n个区间 [Li, Ri] ,让你选择最多 k 个,问区间的并最大是多少; 思路:看网上题解都是n^2 对区间进行操作的,我的方才比赛做法是n^3 优化成n^2 * logn的 首先我们去重,按照区间右值排序,用dp[i][j] 表示当前选到第i个区间,已经选了j个区间的最大区间并的长度,这样的话进行下次转移的时候,我们还得考虑前面选了的区间的最右值是多少,这...原创 2018-09-07 14:21:53 · 295 阅读 · 0 评论 -
牛客11月1日 区区区间间间 线段树版
题意;给定一个长度为n的序列,计算所有区间的 ‘最大值-最小值’ 之和;思路:分别计算所有区间的最大值的和,和最小值的和;这里我用线段树维护区间最大(最小)值和位置,然后能知道当前值作为最大值能贡献的区间个数,递归的处理每个区间,处理最小值同理;更加详细思路讲解:https://blog.csdn.net/xiang_6/article/details/83655162 (...原创 2018-11-02 13:46:41 · 216 阅读 · 0 评论 -
Codeforces 1070C - Cloud Computing 思路+线段树+贪心 (2018-2019 ICPC, NEERC)
CF:*2000 题意:有n天,每天需要用k个cpu, 然后给定m个计划,对于每个计划包含 L, R, c, p 表示,从第L天到第R天期间,每天你都可以选用c个cpu,每个cpu的花费为p; 问n天的最小花费;(当某天不能得到k个cpu时,就把能选的全选)思路:首先按暴力的思路选择,肯定是对于某一天 优先选择价格p小的cpu,这样没错,但是复杂度不允许;然后我想到了把m...原创 2018-11-05 15:19:19 · 468 阅读 · 0 评论