枚举记录不同斜率值 set容器——pku3668

set统计太方便了
View Code
#include<iostream>
#include
<set>
using namespace std;

struct data
{
int x,y;
}a[
209];

int main()
{
int n;
set<double>set1;
while(scanf("%d",&n)!=EOF)
{
set1.clear();
int i,j;
for(i=1;i<=n;i++)
{
scanf(
"%d%d",&a[i].x,&a[i].y);
}

double t;
bool wu=0;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(a[i].x-a[j].x==0)//注意斜率不存在的时候
{
wu
=1;continue;
}
t
=(a[i].y-a[j].y)*1.0/(a[i].x-a[j].x);
set1.insert(t);
}
}

printf(
"%d\n",set1.size()+wu);
}
}
原文地址:https://www.cnblogs.com/huhuuu/p/1986409.html