只能通过第一个测试点,求帮忙看看哪里错了
2024-07-16 14:55:17
发布于:湖北
4阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
struct p
{
int x;
int y;
}a[2001];
bool cmp(p i,p j)
{
return i.x<j.x;
}
int main()
{
int n,d;
cin>>n>>d;
for(int i=1;i<=n;i++)
{
cin>>a[i].x>>a[i].y;
if(a[i].y>d)
{
cout<<-1;
return 0;
}
}
sort(a+1,a+1+n,cmp);
//雷达尽可能往右边放置
int ans=0;
double dx=-2000000;
for(int i=1;i<=n;i++)
{
double jl=a[i].ya[i].y+(dx-a[i].x)(dx-a[i].x);
if(jl<=dd) continue;//在这个雷达覆盖区域
else
{
ans++;//加一个雷达
dx=a[i].x+sqrt(dd-a[i].y*a[i].y);
}
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个