#include
#include
#include
#include
#include
刚开始看错题意。敲了一个小时。
然后发现错了之后换了方法就过了。
大意是一个在二维坐标系上有一些点。
一个人会沿一些直线巡视。
这些直线是平行于X或Y轴的
然后首先这条线上的点他能看见。
他在线上走的时候也会左右瞅。 当然看的视线是垂直于行走方向的
然后如果一个点在一个点后边。 他是看不到的。因为被挡住了
最后问的是
是否看到了所有点中60%的点
那么我的思路是:
离散化是肯定的
首先从左到右,看每个x坐标,将其所有y坐标塞进一个vector里,并先按y排序
然后把所有走的路线中的水平线坐标塞进一个vector里
然后遍历该x对应的vector中的y坐标。
在水平线那个vector里lower_bound找其附近的两条水平线
看是否被其他点给挡住了。
这样的话就可以了。同理看每个y坐标
#include
#include
#include
#include
#include