#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; }
就是要找不重复的斜率个数
参考了一下大佬的做法,然后,自己做了一些改进