数据结构----线段树
文章平均质量分 90
anthony1314
退役acmer 想要找到后端实习的菜鸡
展开
-
hdu1754 I Hate It (线段树)
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<500...原创 2018-05-04 13:25:41 · 107 阅读 · 0 评论 -
hdu 2795 Billboard (线段树,找第一个大于w的点)
这道题一开始看,实在想不出跟线段树有什么关系,自己实在是太菜了。 给出h*w的广告版。每个广告是1*w的,给出m个广告,要每张广告尽量在上层尽量靠左,输出它所在的高度。假设放不下。就输出-1 这里的问题就是h给的非常大,可是 一共仅仅有m个广告,所以即使是一条广告占一条,那么也就仅仅须要m的高度,多余的高度没实用,假设m的高度的不能放下m条广告,那么即使h再高,也放不下,所以n应该是m和h的小...原创 2018-05-04 14:24:44 · 179 阅读 · 0 评论 -
2018 Multi-University Training Contest 2 ---------hdu 6315 Naive Operations【线段树】
Naive Operations Time Limit: 6000/3000 MS (Java/Others)Memory Limit: 502768/502768 K (Java/Others) Total Submission(s): 853Accepted Submission(s): 318 Problem Description In a galaxy far, f...原创 2018-07-26 11:47:51 · 169 阅读 · 0 评论 -
线段树模板 + 树状数组模板
线段树: 1.求区间最大值(hdu1754) #include<bits/stdc++.h> using namespace std; #define inf 200005 int grade[inf]; struct ndoe{ int l, r, maxn; }tree[inf<<2]; int bulid(int root, int l, int r){ t...原创 2019-04-07 01:16:03 · 319 阅读 · 17 评论 -
2019牛客暑期多校训练营(第四场)C sequence【线段树】【单调栈】
题意: 给你2个长度为n的区间 a区间和b区间 区间的值为b区间之和乘以a区间的最小值,要你求出值最大的区间 题目链接: https://ac.nowcoder.com/acm/contest/884/C 题解: 南昌邀请赛 I题原题QAQ 记录下a数组每个点以他为最小值的区间最左边是哪个点,最右边是哪个点,用单调栈进行操作 r[i]表示右边界 l[i]表示左边界 用线段树维护前缀...原创 2019-07-27 17:58:18 · 264 阅读 · 0 评论 -
hdu6601 Keen On Everything But Triangle【主席树】【2019 Multi-University Training Contest 2】
题意: 给你n个数字,q次查询,每次查询区间l,r之间可以组成三角形的最大周长是多少,没有就输出-1 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6601 题解: 直接求区间第1大和第2大和第3大,不行组成就往下递推,最差情况就是成斐波那契数列,最多推49次 AC_code: #include<bits/stdc++.h&g...原创 2019-08-02 11:02:35 · 222 阅读 · 0 评论 -
模板【树状数组】【线段树】【最大子段和】
树状数组: int bit[MAXN],n,a[MAXN]; int lowbit(int x) { return x&(-x); } void add(int i,int x) { while(i<=n) { bit[i]+=x; i+=lowbit(i); } } int sum(int i) { int s=0; while(i>0) { s+=...原创 2019-08-09 11:11:37 · 264 阅读 · 0 评论 -
HDU1542 Atlantis 【线段树】【扫描线入门】
题意 给你n个矩形,算出他们覆盖了多少面积 思路 总结一下扫描线的套路 把矩形的上下边 按照 左端点的x坐标 右端点的x坐标 高度 为上位边还是下位边存起来 当作扫描线 根据高度排序,从低到高,也就是y坐标 把所有x坐标都提取出来 排序离散化 线段树维护的节点 为x坐标某个区间内左端点 右端点 下位边的总长度 下位边的数量 如果扫描线下标为1~m 循环1 ~ m-1 m条扫描线 循...原创 2019-08-10 11:50:19 · 163 阅读 · 0 评论 -
hdu6681 Rikka with Cake【线段树】【离散化】【2019 Multi-University Training Contest 9】
题意: 在一个封闭的n*m的矩形内,有k条射线,有四个方向,上下左右,射线,射线的端点不重合,该矩形内有多少个封闭的区域 1≤n,m≤1e9,1≤k≤1e51\le n,m \le 1e9 ,1\le k \le 1e51≤n,m≤1e9,1≤k≤1e5 没有任意两个个端点的x坐标 或 y坐标相同 题解: 看图不难观察到 当横向的线与纵向的线产生一个交点的时候,封闭的区域就会增加1 于是我们只需要...原创 2019-08-20 10:39:31 · 144 阅读 · 0 评论