| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
why wa 难道是斜率精度有问题?跪求高人指点#include <stdio.h>
struct x{
long double xielu;
long double y;
int jishu;
}xie[20000];
struct y{
long double x;
int jishu;
}wuxielu[20000];
struct dian{
long double x;
long double y;
}jiedian[500];
int main()
{
int n, i, j, k=0, k1=0, m, flag;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%llf%llf",&jiedian[i].x, &jiedian[i].y);
//printf("%llf\n",jiedian[i].x);
for(j=0; j<i; j++)
{
flag=1;
if(jiedian[i].x==jiedian[j].x)
{
for(m=0; m<k; m++)
if(jiedian[i].x==wuxielu[m].x)
{
wuxielu[m].jishu++;
flag=0;
goto loor;
}
if(flag)
{
wuxielu[k].x=jiedian[i].x;
wuxielu[k++].jishu++;
}
}
else
{
double xielu=(jiedian[i].y-jiedian[j].y)/(jiedian[i].x-jiedian[j].x);
double yj=(jiedian[j].y*jiedian[i].x-jiedian[i].y*jiedian[j].x)/
(jiedian[i].x-jiedian[j].x);
for(m=0; m<k1; m++)
if((xielu==xie[m].xielu)&&(yj==xie[m].y))
{
xie[m].jishu++;
flag=0;
goto loor;
}
if(flag)
{
xie[k1].y=yj;
xie[k1].xielu=xielu;
xie[k1++].jishu++;
}
}
}
loor:1;
}
int max=0;
for(i=0; i<k1; i++)
{
if(xie[i].jishu>max)
max=xie[i].jishu;
}
for(i=0; i<k; i++)
{
if(wuxielu[i].jishu>max)
max=wuxielu[i].jishu;
}
printf("%d\n", max+1);
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator