HDU 5820 Lights(扫描线+zkw线段树)】的更多相关文章

扫描线的模板题,先把信息接收,然后排序,记录下上边和下边,然后用一条虚拟的线从下往上扫.如果我扫到的是下边,那么久用线段树在这个区间内加上1,表示这个区间现在是有的,等我扫描到上边的时候在加上-1,把之前的消掉,然后线段树维护区间内的长度,这里不是直接用下标维护,而是需要另一个数组来维护,每次记录我当前的下标在原本的图中的长度. 在update部分用一个点表示我这个点以后的一个长度为1的区间,然后这样算出来的sum[1]就是我现在线段树里包括的区间大小,然后用现在的区间大小去乘上这一部分的高度,…
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5820 [题目大意] 在一个大小为50000*50000的矩形中,有n个路灯. 询问是否每一对路灯之间存在一条道路,使得长度为|x1–x2|+|y1–y2|且每个拐弯点都是路灯. [题解] 只要找到不共线的两个点,他们所构成的矩阵剩余的两个点都是不存在的,那么这个图就是违法的.那么如何找呢,我们将所有点按照x为第一关键字,y为第二关键字排序,逐行扫描,对于每个点,扫描与他同行的前后两个点的列坐标形…
1206 Picture  题目来源: IOI 1998 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题  收藏  关注 给出平面上的N个矩形(矩形的边平行于X轴和Y轴),求这些矩形组成的所有多边形的周长之和.     例如:N = 7.(矩形会有重叠的地方).   合并后的多边形:     多边形的周长包括里面未覆盖部分方块的周长. Input 第1行:1个数N.(2 <= N <= 50000) 第2 - N + 1行,每行4个数,中间用空格分隔,分别…
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=4366 [题目大意] 有一个公司,每个员工都有一个上司,所有的人呈树状关系,现在给出每个人的忠诚值和能力值,每次当一个人被辞退的时候,会由能力值大于他的下属中忠诚值最高的去代替他的位置,下属的关系是可传递的,上司的编号一定大于下属.现在给出一些询问,问如果一个人辞退将会由哪个人代替他,所有人的忠诚值都是唯一的. [题解] 现在这道题就相当于是从子树中找出key1值大于子树根节点且key2值最高的子…
“队列进出图上的方向 线段树区间修改求出总量 可持久留下的迹象 我们 俯身欣赏” ----<膜你抄>     线段树很早就会写了,但一直没有总结,所以偶尔重写又会懵逼,所以还是要总结一下. 引言 在生活和竞赛中,我们总是会遇上一些问题,比如说令人厌恶的统计成绩,老师会想询问几个人中成绩最低的是谁...... 于是问题出现了.   e.g.1(暴力膜不可取) 已知班上有50个学生,学号分别为1-50,老师想问学号为a-b之间的最低分是多少 比如 2 5 3 4 1中 2-4 之间的最小值为 3…
题还是那个题:http://www.cnblogs.com/dilthey/p/6827959.html 不过我们今天换一种线段树实现来做这道题: 关于zkw线段树的讲解:https://zhuanlan.zhihu.com/p/29876526(而且我还在文章里被@了,超开心的ヾ(≧∇≦*)ヾ) 可以说是讲解非常的清楚了! AC代码(包含了拥有节点更新.区间查询功能的zkw线段树模板): #include<cstdio> #include<cstring> #define MAX…
转载自:http://blog.csdn.net/qq_18455665/article/details/50989113 前言 首先说说出处: 清华大学 张昆玮(zkw) - ppt <统计的力量> 本文(辣鸡)编辑:BeiYu 写这篇博客的原因:  1.zkw线段树非递归,效率高,代码短  2.网上关于zkw线段树的讲解实在是太少了  3.个人感觉很实用 更新日志 20160327-Part 1(zkw线段树的建立) 20160329-Part 2(单点操作) 20160329-Part…
Part 1 来说说它的构造 线段树的堆式储存 我们来转成二进制看看 小学生问题:找规律 规律是很显然的 一个节点的父节点是这个数左移1,这个位运算就是低位舍弃,所有数字左移一位 一个节点的子节点是这个数右移1,是左节点,右移1+1是右节点 同一层的节点是依次递增的,第n层有2^(n-1)个节点 最后一层有多少节点,值域就是多少(这个很重要) 有了这些规律就可以开始着手建树了 查询区间[1,n] 最后一层不是2的次幂怎么办?  开到2的次幂!后面的空间我不要了!就是这么任性!  Build函数就…
啊,是否疲倦了现在的线段树 太弱,还递归! 那我们就欢乐的学习另外一种神奇的线段树吧!(雾 他叫做zkw线段树   这个数据结构灰常好写(虽然线段树本身也特别好写……) 速度快(貌似只在单点更新方面比线段树快……) 是一种自底向上非递归版本的线段树! 首先我们来看一个ppt,<统计的力量>这个是发明人的PPT(啊,ppt内的代码是错的…… 統計的力量 好吧,我们来写吧~ 首先预备条件: +]; M指的是什么呢?M就指的是这颗zkw线段树最下面的那个点之前的编号是什么 T数组就是这个zkw线段树…
简介 zkw线段树虽然是线段树的另一种写法,但是本质上已经和普通的递归版线段树不一样了,是一种介于树状数组和线段树中间的存在,一些功能上的实现比树状数组多,而且比线段树好写且常数小. 普通线段树采用从上到下逐层递归的方式.zkw线段树则是从底层开始,目标直接明确,不需要线段树在确定区间的分治过程. 一些基础题 COGS264 数列操作 树状数组的题,据说模拟也能过hhhh. 单点修改,区间查询.各种数据结构都可搞,用最基本的zkw线段树实现. //zkw segment tree //by Cy…