SP3184 LINES - Game of Lines 题解

Posted on 2024-03-03 18:32  _XOFqwq  阅读(2)  评论(0编辑  收藏  举报

我们知道,若两条线段平行,则它们的斜率一定相同。

于是本题的答案就是每条线段的斜率去重之后的个数。

具体地,若一条线段的两个端点分别为 \((x_1,y_1)\)\((x_2,y_2)\),则此线段的斜率为

\[\dfrac{(y_1-y_2)}{(x_1-x_2)} \]

特别的,若 \(x_1=x_2\),则斜率为 \(\infty\)(即一个极大值)。

于是,我们利用 \(\text{STL set}\) 天生去重的特性,朴素枚举每条线段计算其斜率,并插入 \(\text{set}\) 中,最后 \(\text{set}\) 的大小即为答案。

对于每组数据,时间复杂度为 \(O(n^2)\),可以接受。