Acwing 4202. 穿过圆


 1 #include
 2 using namespace std;
 3 const int N=1e3+5;
 4 int px[N],py[N],x[N],y[N],r[N];
 5 bitsetbt[N],t;
 6 long long pow_x(int x)
 7 {
 8   return 1ll*x*x;
 9 }
10 int main()
11 {
12   int n,m,k;
13   cin>>n>>m>>k;
14   for(int i=1;i<=n;i++)cin>>px[i]>>py[i];
15   for(int i=1;i<=m;i++) cin>>r[i]>>x[i]>>y[i];
16   for(int i=1;i<=n;i++)
17   {
18     for(int j=1;j<=m;j++)
19     if(pow_x(px[i]-x[j])+pow_x(py[i]-y[j])<=pow_x(r[j]))bt[i].set(j);
20   }
21   for(int i=1;i<=k;i++)
22   {
23     int u,v;
24     cin>>u>>v;
25     t=bt[u]^bt[v];//如果在同一个圆内,不用穿过,不同圆穿过
26     cout<endl;
27   }
28   return 0;
29 }

相关