题解说用四叉树,没分析复杂度:
恩。四叉树:
以下代码跑得比部分四叉树代码还快
#include<bits/stdc++.h>
using namespace std;
struct point{
int x;
int y;
};
point p[50000];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d%d",&p[i].x,&p[i].y);
int x,y,r;
for(int i=1;i<=m;i++)
{
int ans=0;
scanf("%d%d%d",&x,&y,&r);
for(int j=1;j<=n;j++)
if (r*r>= (x-p[j].x)*(x-p[j].x)+(y-p[j].y)*(y-p[j].y) )
ans++;
printf("%d\n",ans);
}
return 0;
}