#include<bits/stdc++.h>
using namespace std;
const int N=100003;
int n,k=1,f;
double x[N],y[N],z[N];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i];
}
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(x[i]==x[j])
{
z[++f]=0x3f3f3f3f;
}
else
{
z[++f]=(y[i]-y[j])/(x[i]-x[j]);
}
}
}
k=unique(z+1,z+1+f)-z-1;
cout<<k<<endl;
}就是要找不重复的斜率个数
参考了一下大佬的做法,然后,自己做了一些改进

京公网安备 11010502036488号