题目背景
建议先看 C 题题目背景。
题目描述
平面直角坐标系中有 n 条直线,任意三条直线不交于一点且没有两条直线重合。显然这些直线形成了不超过 2n(n−1) 个交点。你可以从这些直线中选出一部分,一个点被覆盖当且仅当有至少一条被选中的直线经过了它。求最少选出多少条直线才能覆盖所有交点。
输入格式
第一行,一个整数 n。
接下来 n 行,每行有三个整数 a,b,c,表示一条解析式为 ax+by+c=0 的直线。
注意:输入数据不保证 gcd(a,b)=1。
输出格式
共一行,一个整数,表示答案。
3
1 2 3
4 5 6
7 8 10
2
提示
对于 100% 的数据,1≤n≤105,∣a∣,∣b∣,∣c∣≤109,a,b 不全为 0。
|
分值 |
n |
特殊性质 |
Subtask1 |
10 |
≤20 |
无 |
Subtask2 |
30 |
≤100 |
Subtask3 |
10 |
无特殊限制 |
ab=0 |
Subtask4 |
50 |
无 |
样例解释
一种方法是选出 x+2y+3=0 和 4x+5y+6=0 两条线。
可以证明没有更优的方案。