hdu1077

/*

 这个代码在vsC++下没有报错,然后在oj上面报错,然后不同不断调试,发现之前有个方法是distance()其实是C++的模板,然后我自己写了一个方法也叫这个名字,结果就出现了一下的报错,后面将这个方法改名字后就AC了

0_0_14762705_8736.cpp
2013\INCLUDE\xutility(371) : error C2039: “iterator_category”: 不是“Point”的成员
        0_0_14762705_8736.cpp(7) : 参见“Point”的声明
        0_0_14762705_8736.cpp(22): 参见对正在编译的类 模板 实例化“std::iterator_traits<Point>”的引用
2013\INCLUDE\xutility(371) : error C2146: 语法错误: 缺少“;”(在标识符“iterator_category”的前面)
2013\INCLUDE\xutility(371) : error C4430: 缺少类型说明符 - 假定为 int。注意:  C++ 不支持默认 int
2013\INCLUDE\xutility(371) : error C2602: “std::iterator_traits<Point>::iterator_category”不是“std::iterator_traits<Point>”基类的成员
        2013\INCLUDE\xutility(371) : 参见“std::iterator_traits<Point>::iterator_category”的声明
2013\INCLUDE\xutility(371) : error C2868: “std::iterator_traits<Point>::iterator_category”: 非法的 using 声明语法;应输入限定名
2013\INCLUDE\xutility(372) : error C2039: “value_type”: 不是“Point”的成员
        0_0_14762705_8736.cpp(7) : 参见“Point”的声明
2013\INCLUDE\xutility(372) : error C2146: 语法错误: 缺少“;”(在标识符“value_type”的前面)
2013\INCLUDE\xutility(372) : error C4430: 缺少类型说明符 - 假定为 int。注意:  C++ 不支持默认 int
2013\INCLUDE\xutility(372) : error C2602: “std::iterator_traits<Point>::value_type”不是“std::iterator_traits<Point>”基类的成员
        2013\INCLUDE\xutility(372) : 参见“std::iterator_traits<Point>::value_type”的声明
2013\INCLUDE\xutility(372) : error C2868: “std::iterator_traits<Point>::value_type”: 非法的 using 声明语法;应输入限定名
2013\INCLUDE\xutility(373) : error C2039: “difference_type”: 不是“Point”的成员
        0_0_14762705_8736.cpp(7) : 参见“Point”的声明
2013\INCLUDE\xutility(373) : error C2146: 语法错误: 缺少“;”(在标识符“difference_type”的前面)
2013\INCLUDE\xutility(373) : error C4430: 缺少类型说明符 - 假定为 int。注意:  C++ 不支持默认 int
2013\INCLUDE\xutility(373) : error C2602: “std::iterator_traits<Point>::difference_type”不是“std::iterator_traits<Point>”基类的成员
        2013\INCLUDE\xutility(373) : 参见“std::iterator_traits<Point>::difference_type”的声明
2013\INCLUDE\xutility(373) : error C2868: “std::iterator_traits<Point>::difference_type”: 非法的 using 声明语法;应输入限定名
2013\INCLUDE\xutility(375) : error C2039: “pointer”: 不是“Point”的成员
        0_0_14762705_8736.cpp(7) : 参见“Point”的声明
2013\INCLUDE\xutility(375) : error C2146: 语法错误: 缺少“;”(在标识符“pointer”的前面)
2013\INCLUDE\xutility(375) : error C4430: 缺少类型说明符 - 假定为 int。注意:  C++ 不支持默认 int
2013\INCLUDE\xutility(375) : error C2602: “std::iterator_traits<Point>::pointer”不是“std::iterator_traits<Point>”基类的成员
        2013\INCLUDE\xutility(375) : 参见“std::iterator_traits<Point>::pointer”的声明
2013\INCLUDE\xutility(375) : error C2868: “std::iterator_traits<Point>::pointer”: 非法的 using 声明语法;应输入限定名
2013\INCLUDE\xutility(376) : error C2039: “reference”: 不是“Point”的成员
        0_0_14762705_8736.cpp(7) : 参见“Point”的声明
2013\INCLUDE\xutility(376) : error C2146: 语法错误: 缺少“;”(在标识符“reference”的前面)
2013\INCLUDE\xutility(376) : error C4430: 缺少类型说明符 - 假定为 int。注意:  C++ 不支持默认 int
2013\INCLUDE\xutility(376) : error C2602: “std::iterator_traits<Point>::reference”不是“std::iterator_traits<Point>”基类的成员
        2013\INCLUDE\xutility(376) : 参见“std::iterator_traits<Point>::reference”的声明

*/

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
struct Point
{
double  x;
double y;
};
double distance_fun(Point p1,Point p2)
{
return (p1.y-p2.y)*(p1.y-p2.y)+(p1.x-p2.x)*(p1.x-p2.x);
}
Point get_center(Point p1,Point p2)
{
Point mid;
mid.x=(p1.x+p2.x)/2;
mid.y=(p1.y+p2.y)/2;

double dis=distance_fun(mid,p2);
dis=sqrt(1.0-dis);
//cout<<"p1.y="<<p1.y<<" p2.y="<<p2.y<<endl;
double a=atan(-((p1.x-p2.x)/(p1.y-p2.y)));
mid.x=mid.x+dis*cos(a);

mid.y=mid.y+dis*sin(a);
//printf("mid.x=%lf,mid.y=%lf\n",mid.x,mid.y);
return mid;


}
Point ps[310];
int main()
{
freopen("in1.txt","r",stdin);
int t;
int i,j;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(i=0;i<n;i++)
{
//cin>>ps[i].x>>ps[i].y;
scanf("%lf%lf",&ps[i].x,&ps[i].y);
//printf("ps[%d].x=%lf,ps[%d].y=%lf\n",i,ps[i].x,i,ps[i].y);
}
int ans=1;

for(i=0;i<n;i++)
{

for(j=i+1;j<n;j++)
{
// cout<<"hello"<<endl;
if(distance_fun(ps[i],ps[j])>4) continue;
Point c=get_center(ps[i],ps[j]);
int max=0;
// cout<<"he"<<endl;
for(int m=0;m<n;m++)
{
if(distance_fun(c,ps[m])<=1.00001)
max++;
}
if(max>ans) ans=max;
}
}
cout<<ans<<endl;
}
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值