思路:枚举+set去重+数学公式+(最大公约数)
数学公式用的是两点式直线方程,(y-y2)/(y1-y2)=(x-x2)/(x1-x2),
变形后为(y1-y2) x +(x2-x1) y +( x1 * y2 - x2 * y1)=0
思路:先存储所有的坐标 ,遍历所有的坐标组获得直线ax+by+c=0的a,b,c并使用gcd约分最后再利用set去重,最后再加上垂直于x轴和y轴的数.
当a,b,c数目不同时,就构造出直线。
为什么要约分?
因为求出的一组系数很可能并不是最简的,需要约去最大公约数
为什么要去重?
因为每次构造的系数不是唯一的,别的点也可以构造出来,所以就需要用到STL的set去重。
注意:
#include <set>
set<int>s;
s.insert(n%10);
答案:40257
求最大公约数