扫描线
CaprYang
这个作者很懒,什么都没留下…
展开
-
Atlantis HDU - 1542 线段树 扫描线
题解 题目大意 给你n个矩形的左上角坐标和右下角坐标求矩形覆盖面积 坐标为实数 使用线段树+扫描线求解 将矩形分割为上下两条边 记录边的左端点和右端点分别对应矩形的左右侧边 上下边的高度分别对应矩形的上下边 和符号 上为正下为负 将边按照高度从高到低排序处理 每次处理过程中根据符号在线段树中离散化标记覆盖范围并计算覆盖长度 乘上距离下条边的高度差为当前分块的答案贡献 求和即可 AC代码 #incl...原创 2018-10-19 00:20:14 · 372 阅读 · 0 评论 -
覆盖的面积 HDU - 1255 线段树 扫描线
题解 使用线段树+扫描线求解 将矩形分割为上下两条边 记录边的左端点和右端点分别对应矩形的左右侧边 上下边的高度分别对应矩形的上下边 和符号 上为正下为负 将边按照高度从高到低排序处理 每次处理过程中根据符号在线段树中离散化标记覆盖范围并计算覆盖长度 长度分为覆盖一次和两次的长度分别计算 每次扫描用覆盖两次的长度乘上距离下条边的高度差为当前分块的答案贡献 求和即可 AC代码 #include &l...原创 2018-10-19 23:47:22 · 332 阅读 · 0 评论 -
Picture POJ - 1177 线段树 扫描线
题解 题目大意 给若干个矩形问覆盖在一起的多边形的边长和是多少 使用扫描线将矩形拆分为线段从上往下扫 用线段树维护线段左右端点是否闭合计算线段分为几段 每次扫描时纵向边长为段数量2高度差 计算横向边时每次减上次的边长减去重复贡献 AC代码 #include <stdio.h> #include <iostream> #include <algorithm> us...原创 2018-11-22 22:24:58 · 414 阅读 · 0 评论