【题目描述】
题目意思不难理解,把n条线段画在纸上,合并可以合并的线段,比如两条线段有至少两个公共点就可以合并成一条线段,问最后剩下几条线段
【输入输出】
多case
n (n <= 10000)
x1, y1, x12, y12
....
xn, yn, xn2, yn2;
n = 0结束
每个用例输出最后的线段数。
【题目分析】
想法就是对线段按斜率排序,斜率相同的按x轴或y轴的截距来排序,截距也相同的按x较小的x坐标或者y较小的y坐标来排序,这样就可以保证overlap的线段都是相邻的,然后线性扫描一遍。
注意水平线和垂线的特殊处理
【code】
本文介绍了一种用于合并可重叠线段的算法。通过按斜率、截距及坐标排序线段,确保重叠线段相邻,便于线性扫描合并。特别处理了水平线和垂直线的情况。
195

被折叠的 条评论
为什么被折叠?



