首页 > 编程语言 >papamelon 348. 修复网络 Wireless Network(挑战程序设计竞赛)

papamelon 348. 修复网络 Wireless Network(挑战程序设计竞赛)

时间:2023-06-10 20:11:12浏览次数:48  
标签:Network int 电脑 Wireless second first papamelon find axis

地址 https://www.papamelon.com/problem/348

给定 N 台电脑,它们分别落在地图上的坐标 xi,yi上。

现在它们都损坏了。我们准备修复其中的某一些电脑。

当一台电脑修复好了后,它和其他相距不超过距离 d 的正常电脑就可以通信。

通信具有传递性:A 和 B 能通信,
B 和 C 能通信,那么 
A 和 C 就能通信。

现在给定两种操作:
O p:1≤p≤N,表示修复第 p 台电脑
S p q:
1≤p,q≤N,测试 ,
p,q 两台电脑是否能通信
两种操作随机给出,对于每个 S 操作,输出 SUCCESS 或 FAIL,代表是否能通信。

输入
第一行两个整数 
N(1≤N≤1001),d(0≤d≤20000)
接下来 N 行,每行是一台电脑的坐标 
接下来若干行,是随机给出的操作,以 EOF 结束,操作的输入格式如上所述
样例 1
输入
4 1
0 1
0 2
0 3
0 4
O 1
O 2
O 4
S 1 4
O 3
S 1 4
输出
FAIL
SUCCESS

并查集
每修好一台电脑 与周边电脑计算坐标 如果在范围内,合并两台电脑的编号。
注意判断记录 可以不使用开根号计算。

#include <iostream>

using namespace std;

const int N = 1010;
int f[N];
pair<int, int> axis[N];
int repair[N];

void init() {
    for (int i = 0; i < N; i++) {
        f[i] = i;
    }
}

int find(int x) {
    if (f[x] != x) {
        f[x] = find(f[x]);
    }
    return f[x];
}

void merge(int a, int b) {
    f[find(a)] = find(b);
}

int  calcDis(int a, int b) {
    int res =  (axis[a].first - axis[b].first) * (axis[a].first - axis[b].first) +
        (axis[a].second - axis[b].second) * (axis[a].second - axis[b].second);
    return res;
}

int n, d;
int main() {
    init();
    cin >> n >> d;
    for (int i = 1; i <= n; i++) {
        int x, y;
        cin >> x >> y;
        axis[i] = { x,y };
    }
    string op;
    while (cin >> op) {
        if (op == "O") {
            int t;
            cin >> t;
            repair[t] = 1;
            for (int i = 1; i <= n; i++) {
                if (find(i) == find(t)) continue;
                if (repair[i]==1 && calcDis(i, t) <= ((long long)1 * d * d) ) {
                    merge(i, t);
                }
            }
        }
        else {
            int a, b; cin >> a >> b;
            if (find(a) == find(b)) {
                cout << "SUCCESS" << endl;
            }
            else {
                cout << "FAIL" << endl;
            }
        }
    }

    return 0;
}

视频题解空间

标签:Network,int,电脑,Wireless,second,first,papamelon,find,axis
From: https://www.cnblogs.com/itdef/p/17471863.html

相关文章

  • SC-FEGAN: Face Editing Generative Adversarial Network with User’s Sketch and Co
    SC-FEGAN:FaceEditingGenerativeAdversarialNetworkwithUser’sSketchandColorhttps://github.com/run-youngjoo/SC-FEGANhttps://arxiv.org/abs/1902.06838基于GAN的人脸编辑,效果非常好,应用点非常新颖。总的来说,效果非常好,包括很多细节都能够进行编辑。就创新点来讲,就是......
  • F12-Network面板介绍
    前言在测试人员测试过程中经常需要通过抓包来区分一些前后端的Bug,特别是Web端的测试,利用浏览器中的F12开发者选项,就能进行网站界面测试、调试,分析网页所出现的问题,查看html元素、查看响应事件等方面。F12开发者工具面板用Google打开一个页面,点击键盘右上方的F12按钮,弹出F12开发者......
  • Static 单例中 QNetworkAccessManager 的释放问题
    结论:QNetworkAccessManager以Static对象作为父对象时,需要注意在main函数return前释放,否则可能导致Qt框架内部的重复释放引发崩溃。原因:Static对象是在Main函数return后才释放的,此时,已经QApplication已失效 参考https://bugreports.qt.io/browse/QTBUG-82984htt......
  • BLINNET - Bytelandian Blingors Network
    传送门:BLINNET-BytelandianBlingorsNetwork通过读题,不难发现,把这些点连接起来的最小成本,岂不是最小生成树?现在先思考一下给出的城市名字需要如何处理?其实直接按照输入顺序标号就好了!跑一遍最小生成树即可,注意多测清空。处理最小生成树的策略是,把边按照成本从小到大排序,每......
  • Learning to Pre-train Graph Neural Networks 学习如何预训练GNN
    ......
  • k8s中设置hostNetwork: true,怎么修改冲突的端口,yaml使用的是DaemonSet
    apiVersion:apps/v1kind:DaemonSetmetadata:name:cadvisornamespace:monitoringspec:selector:matchLabels:app:cAdvisortemplate:metadata:labels:app:cAdvisorspec:tolerations:#污点容忍,忽略master的......
  • Achieving a Better Stability-Plasticity Trade-off via Auxiliary Networks in Cont
    摘要连续学习过程中的稳定性-可塑性权衡是一个重要的问题。作者提出了AuxiliaryNetworkContinualLearning(ANCL),通过auxiliarynetwork提高了模型的可塑性。方法TheFormulationofAuxiliaryNetworkContinualLearning传统的continuallearning方法通常是在新数据集上......
  • pycharm环境配置_network
    目录新建解释器:a.通过Virtualenv新建解释器。b.通过conda新建解释器。管理解释器新建工程配置现有解释器新建工程配置新的解释器a.新建解释器b.利用pip安装包(annconda环境或一些难安装的包)显示所有环境:condaenvlist相关问题:(1)Python出现ValueError:check_hostnamerequiresser......
  • VMWare 虚拟机安装系统出现unsuccessful EFI Network
    问题:解决方法:重新打开虚拟机内的系统就可以安装了......
  • Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendati
    目录概符号说明HypergraphLinegraphDHCNHypergraphChannelLineGraphChannelContrastiveLearning优化代码XiaX.,YinH.,YuJ.,WangQ.,CuiLandZhangX.Self-supervisedhypergraphconvolutionalnetworksforsession-basedrecommendation.AAAI,2021.概自监......