题目意思很简单:平面上有N(N<1000)个点,用一个给定形状的直角三角形,求它最多可以覆盖多少个点?
可以分析出题目的要求是O(N2)的算法。
此题很快可以得到一个O(N2logN)的算法,通过对每个点经过以直角边的斜率为斜率的直线的截距排序,再使用树状数组统计。
这道题O(N2)的算法非常有创意!除了之前想到的通过对每个点经过以直角边的斜率为斜率的直线的截距排序,我们在继续通过Y轴排序,然后我们再加入对Y轴排好了序的满足条件的点,通过截距排序的退出不符合的点,由此维护一个满足的点的集合来更新答案就OK了!
惊异的在pascal中排rank1: