4760 飞行员酷町猫经验值:1200
题目描述 Description
飞行员酷町猫最近需要给一个地区的若干村庄空投补给,这些村庄是平面上的一些点。由于燃料问题,酷町猫只能飞一次。而且飞机很破,只能直行而不能拐弯。现在它想一次性给最多的村庄送补给。
输入描述 Input Description
第一行为n
接下来n行由n对整数组成(1≤n≤700),每对整数表示一个点的坐标。没有一个点会出现两次。
输出描述 Output Description
一个整数,表示一条直线能覆盖的最多的点数。
样例输入 Sample Input
5 1 1 2 2 3 3 9 10 10 11
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
村庄的位置横纵坐标不超过100
这一题我连思路都没有,求思路。
吕若朴在2020-05-24 21:11:57追加了内容
心情坏透了!!!!啊啊!!
吕若朴在2020-07-26 10:05:10追加了内容
自行AC了,随便找人采纳
你先学学平面直角坐标系,
再学学直线解析式(直线方程),
然后学学一次函数图像及其性质。
然后再来找我。
李泽远在2020-05-24 21:42:06追加了内容
y=kx+b中的k是斜率;
斜率算法:k=(y2-y1)/(x2-x1)=dy/dx
李泽远在2020-05-24 21:43:54追加了内容
补充资料:斜率k=△y/△x=dy/dx=y'=tanθ
李泽远在2020-05-25 21:58:12追加了内容
第一层1到n的循环,枚举第一个点
第二层从i+1到n循环,枚举第二个点{
计数器等于2,因为该直线至少包含两个点
第三层从j+1到n循环,枚举剩下的点
如果(y[j]-y[i])*(x[k]-x[i])=(y[k]-y[i])*(x[j]-x[i])的话,计数
此处为分式△y/△x通过交叉相乘化简后的结果;也就是如果斜率相同的话 ,则计数(由两个点确定的直线上一共有多少个点 )
取计数器最大值。
}
李泽远在2020-05-26 20:41:48追加了内容
顶顶顶
李泽远在2020-05-28 15:55:17追加了内容
继续顶
if(s比下一个数大){
sum++
s=下一个数
}
5 1 1 2 2 3 3 9 10 10 11
5比0大
sum++
1比5小
sum+=0
2比5小
sum+=0
3比5小
sum+=0
以此类推