当前位置:网站首页>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;
}
边栏推荐
- Global and Chinese market of liquid antifreeze 2022-2028: Research Report on technology, participants, trends, market size and share
- Research Report on the overall scale, major manufacturers, major regions, products and application segmentation of rotary tablet presses in the global market in 2022
- 4. Data binding
- FPGA learning notes: vivado 2019.1 project creation
- Micro service knowledge sorting - cache technology
- P5.js development - setting
- 2.5 conversion of different data types (2)
- Machine learning support vector machine SVM
- Fingerprint password lock based on Hal Library
- Titles can only be retrieved in PHP via curl - header only retrieval in PHP via curl
猜你喜欢
Wargames study notes -- Leviathan
[Yu Yue education] basic reference materials of manufacturing technology of Shanghai Jiaotong University
How can the outside world get values when using nodejs to link MySQL
An old programmer gave it to college students
Don't be afraid of no foundation. Zero foundation doesn't need any technology to reinstall the computer system
In 2021, the global revenue of thick film resistors was about $1537.3 million, and it is expected to reach $2118.7 million in 2028
LabVIEW training
AcWing 1460. Where am i?
Example of peanut shell inner net penetration
你真的知道自己多大了吗?
随机推荐
2166. Design bit set
The global industrial design revenue in 2021 was about $44360 million, and it is expected to reach $62720 million in 2028. From 2022 to 2028, the CAGR was 5.5%
What is the difference between a kill process and a close process- What are the differences between kill process and close process?
Oak-d raspberry pie cloud project [with detailed code]
Test changes in Devops mode -- learning and thinking
Global and Chinese markets of active matrix LCD 2022-2028: Research Report on technology, participants, trends, market size and share
How to check the permission to write to a directory or file- How do you check for permissions to write to a directory or file?
Thread, thread stack, method stack, the difference of creating thread
Sword finger offer 30 Stack containing min function
thrift go
JMeter plug-in installation
Cap and base theory
Example of peanut shell inner net penetration
7. Data broker presentation
2.5 conversion of different data types (2)
Change deepin to Alibaba image source
浅议.NET遗留应用改造
Promethus
How can the outside world get values when using nodejs to link MySQL
MySQL 8.0 data backup and recovery