70分求助,最后3个点没过;

P3958 [NOIP2017 提高组] 奶酪

@[乔铎清](/user/316354) 1e9平方会爆int ```cpp #include <bits/stdc++.h> using namespace std; int x[1000000]; int y[1000000]; int z[1000000]; int fa[1000000]; long long dis(int x1,int y1,int z1,int x2,int y2,int z2) { long long sum = 0; sum = (long long)(x2-x1)*(x2-x1)+(long long)(y2-y1)*(y2-y1)+(long long)(z2-z1)*(z2-z1); return sum; } int find(int x) { if(x==fa[x]) { return x; } else { fa[x]=find(fa[x]); return fa[x]; } } int main() { int t; cin >> t; for(int i=1;i<=t;i++) { int n,h,r; cin >> n >> h >> r; for(int j=0;j<=n+1;j++) { fa[j]=j; } for(int j=1;j<=n;j++) { cin >> x[j] >> y[j] >> z[j]; if(z[j]-r<=0) { if(find(j)!=find(0)) { fa[find(j)]=find(0); } } if(z[j]+r>=h) { if(find(j)!=find(n+1)) { fa[find(j)]=find(n+1); } } for(int p=1;p<j;p++) { if(dis(x[j],y[j],z[j],x[p],y[p],z[p])<=(long long)4*r*r) { if(find(j)!=find(p)) { fa[find(j)]=find(p); } } } } if(find(n+1)==find(0)) { cout << "Yes" << endl; } else { cout << "No" << endl; } } return 0; } ```
by tony_wind @ 2022-08-12 12:31:17


**谢谢啦**
by 乔铎清 @ 2022-08-12 12:56:36


@[tony_wind](/user/347832) **谢谢大佬,非常感谢!!!**
by 乔铎清 @ 2022-08-12 13:14:27


|