当前位置:网站首页>Wireless network (preprocessing + concurrent search)
Wireless network (preprocessing + concurrent search)
2022-07-03 20:25:00 【MangataTS】
Topic link
https://www.acwing.com/problem/content/4269/
Ideas
because n For the range of 1k, Then we can put every point in advance d All points in the range are stored , This is an edge that is not clear whether it can be connected , Let's have another one v i s [ i ] vis[i] vis[i] Record the current number i Whether the computer is turned on . As for the relationship between these computers, we can maintain computers in the same set by merging and searching sets , We now have two operations :
- 'O’ operation : take p Computer on
- 'S’ operation : Inquire about p and q Whether in a collection
As mentioned earlier, we maintain this data relationship by merging and searching sets , For the first operation , We will p All around the computer Turn on the computer Merge (merge operation ) And put the current computer Mark as power on , For the second operation, we directly query p Computer and q Whether the computer is in the same set
Code
#include<bits/stdc++.h>
using namespace std;
//---------------- Custom part ----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3f
int dx[4] = {
-1, 0, 1, 0}, dy[4] = {
0, 1, 0, -1};
ll ksm(ll a,ll b) {
ll ans = 1;
for(;b;b>>=1LL) {
if(b & 1) ans = ans * a % mod;
a = a * a % mod;
}
return ans;
}
ll lowbit(ll x){
return -x & x;}
const int N = 1e3+10;
//---------------- Custom part ----------------
ll t,n,d,m,fa[N];
struct Point{
ll x,y;
};
vector<Point> V;
vector<int> E[N];
bool vis[N];
ll find(ll x){
ll t = x;
while(t != fa[t]) t = fa[t];
while(x != fa[x]){
ll temp = fa[x];
fa[x] = t;
x = temp;
}
return x;
}
bool is_in(Point a,Point b){
ll x = (a.x - b.x),y = (a.y - b.y);
ll len = x * x + y * y;
return len <= d * d;
}
void init(){
ll x,y;
V.clear();
V.push_back({
0,0});
for(int i = 1;i <= n; ++i) {
vis[i] = false;
fa[i] = i;
cin>>x>>y;
V.push_back({
x,y});
E[i].clear();
}
for(int i = 1;i <= n; ++i) {
for(int j = 1;j <= n; ++j) {
if(i == j) continue;
if(is_in(V[i],V[j]))
E[i].push_back(j);
}
}
}
void slove(){
init();
char op;
while(cin>>op) {
ll u,v,k;
if(op == 'O'){
cin>>u;
k = find(u);
for(int i = 0,l = E[u].size();i < l; ++i) {
if(!vis[E[u][i]]) continue;
v = find(E[u][i]);
if(k != v) fa[v] = k;
}
vis[u] = true;
}
else{
cin>>u>>v;
u = find(u),v = find(v);
if(u == v)
cout<<"SUCCESS"<<endl;
else
cout<<"FAIL"<<endl;
}
}
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
while(cin>>n>>d){
slove();
}
return 0;
}
边栏推荐
- Basic knowledge of dictionaries and collections
- AST (Abstract Syntax Tree)
- Test panghu was teaching you how to use the technical code to flirt with girls online on Valentine's Day 520
- 4. Data splitting of Flink real-time project
- Professional interpretation | how to become an SQL developer
- MySQL 8.0 data backup and recovery
- [Yugong series] February 2022 Net architecture class 004 ABP vNext used in WPF project
- It is discussed that the success of Vit lies not in attention. Shiftvit uses the precision of swing transformer to outperform the speed of RESNET
- Q&A:Transformer, Bert, ELMO, GPT, VIT
- Commands related to files and directories
猜你喜欢

Shortest path problem of graph theory (acwing template)

Part 28 supplement (XXVIII) busyindicator (waiting for elements)
![[effective Objective-C] - block and grand central distribution](/img/09/22b979b97ea13d649b4b904637b79f.jpg)
[effective Objective-C] - block and grand central distribution

Change deepin to Alibaba image source

Example of peanut shell inner net penetration

2.7 format output of values

Node MySQL serialize cannot rollback transactions

Research Report on the overall scale, major manufacturers, major regions, products and application segmentation of rotary tablet presses in the global market in 2022

Exercises of function recursion

Recommendation of books related to strong foundation program mathematics
随机推荐
强基计划 数学相关书籍 推荐
Gym welcomes the first complete environmental document, which makes it easier to get started with intensive learning!
Global and Chinese market of speed limiter 2022-2028: Research Report on technology, participants, trends, market size and share
What is the difference between a kill process and a close process- What are the differences between kill process and close process?
Typora charges, WTF? Still need support
An old programmer gave it to college students
About unregistered transfer login page
The simplicity of laravel
Preliminary practice of niuke.com (11)
[Yu Yue education] basic reference materials of manufacturing technology of Shanghai Jiaotong University
How to improve data security by renting servers in Hong Kong
Virtual machine installation deepin system
Micro service knowledge sorting - three pieces of micro Service Technology
Use of CMD command
2.4 conversion of different data types
2. Template syntax
How to handle wechat circle of friends marketing activities and share production and release skills
2.2 integer
2166. Design bit set
App compliance