描述在xoy直角坐标平面上有n条直线L1,L2,…Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.
例如,对于直线:
L1:y=x; L2:y=-x; L3:y=0
则L1和L2是可见的,L3是被覆盖的.
给出n条直线,表示成y=Ax+B的形式(|A|,|B|<=500000),且n条直线两两不重合.求出所有可见...
分类:
其他好文 时间:
2015-03-16 23:17:30
阅读次数:
386
贾老师不知道是怎么道听途说地了解到并到处宣扬我做了50道+ 的计算几何题,,明明一道都没有做过的我表示非常无奈,,但是为了不让贾老师收 flag, 我决定要做50道计算几何以示尊敬。【bzoj1007】[HNOI2008]水平可见直线显而易见, 我们最后看见的一定是一个下凸壳, 所以类似凸包那样求一...
分类:
其他好文 时间:
2015-02-02 21:13:51
阅读次数:
199
题目大意:给出一些笛卡尔系中的一些直线,问从(0,+∞)向下看时能看到哪些直线。
思路:半平面交可做,但是显然用不上。类似于求凸包的思想,维护一个栈。先将所有直线按照k值排序,然后挨个压进去,遇到有前一个交点被挡住的话就先弹栈。
比较闹心的是去重。我的方法是压栈之前先去重,然后在处理。
CODE:
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-10-17 18:54:42
阅读次数:
153
题目大意:给定n条直线,求从上到下俯瞰能看到哪些直线
半平面交的裸题
首先将所有直线按照斜率排序,依次入栈
如果一条直线和栈顶的交点在栈顶直线和栈顶下面那条直线的交点的左侧,则删除栈顶
若多条直线斜率相同,只插入截距最大的那条直线
最后记录答案输出即可
#include
#include
#include
#include
#include
#define M 50500
using ...
分类:
其他好文 时间:
2014-10-17 15:36:56
阅读次数:
216
Description
Input
第一行为N(0
Output
从小到大输出可见直线的编号,两两中间用空格隔开,最后一个数字后面也必须有个空格
Sample Input
3
-1 0
1 0
0 0
Sample Output
1 2
HINT
Source
这个题其实和计算几何没太大关系,需要用单调栈维护可以被看见的直线...
分类:
其他好文 时间:
2014-06-24 23:22:16
阅读次数:
279