Printed Circuit Board (board)
Printed Circuit Board (board)
题目描述
给出一个N个顶点的简单多边形,对于每个顶点,假如它和原点连成的线段只在这个顶点处和多边形相交,就称为满足要求的顶点。你的任务是输出所有满足要求的顶点编号。


输入
第一行一个正整数N。下面N行每行两个不超过10e6的正整数,依次表示每个顶点的坐标。顶点按照输入顺序用正整数1..N编号,并且顶点保证按照顺时针或逆时针顺序给出。
输出
第一行一个正整数M,表示满足要求的顶点个数。第二行M个正整数,按照升序给出满足要求的顶点编号。
solution
计算几何好题
首先我们按极角把点离散化了。
一条条加入边,判断覆盖一个点的边是不是他的临边就是答案
注意到覆盖区间时没必要覆盖到底,打在区间上即可,查询时一路统计答案。
那么·还剩一个问题,怎么判断两条边谁前谁后。
我们用
第一条边y较小的和第二条边y较大的
第一条边y较大的和第二条边y较小的
叉积起来
画画图就可以发现了
有一个细节,相同斜率的点其实不用特判。
因为那些点怎么都不会被覆盖。
#include
#include
#include
#include
#include
#include
#include
posted @
2018-11-30 20:16 liankewei 阅读(
...) 评论( ) 编辑 收藏
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!