zoukankan      html  css  js  c++  java
  • poj2236 Wireless Network (并查集)

    一张图上分布着n台坏了的电脑,并知道它们的坐标。两台修好的电脑如果距离<=d就可以联网,也可以通过其他修好的电脑间接相连。给出操作“O x”表示修好x,给出操作“S x y”,请你判断x和y在此时有没有连接上。

    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    int f[1010],x[1010],y[1010],vis[1010];
    int n,d,l,r;
    char ch;
    
    void init(){
        for(int i=0;i<=n;i++)
        f[i]=i;
    }
    
    int find(int i){
        if(i!=f[i]) f[i]=find(f[i]);
        return f[i];
    }
    
    bool dis(int a,int b){
        int q=x[a]-x[b];
        int p=y[a]-y[b];
        if(q*q+p*p<=d*d) return true;
        return false;
    }
    
    int main()
    {
        cin>>n>>d;
        init();
        memset(vis,0,sizeof(vis));
        for(int i=1;i<=n;i++){
            cin>>x[i]>>y[i];
        }
        while(cin>>ch){
            if(ch=='O'){
               cin>>r;
               vis[r]=1;
               for(int i=1;i<=n;i++){
                if(i!=r&&vis[i]&&dis(i,r)){
                    int k1=find(r);
                    int k2=find(i);
                    f[k1]=k2;
                }
               }
            }
            else if(ch=='S'){
                cin>>l>>r;
                int k1=find(l);
                int k2=find(r);
                if(k1==k2) cout<<"SUCCESS"<<endl;
                else cout<<"FAIL"<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    stm32型号与flash大小
    SVN适用教程
    sylixos初接触
    基于stm32实时操纵系统初接触
    freertos任务调度
    flash结构
    nand nor flash
    反汇编文件分析
    mm.与cache
    CISC(复杂指令集)和RISC(简单指令集),x86、ARM、MIPS架构
  • 原文地址:https://www.cnblogs.com/Fy1999/p/9402003.html
Copyright © 2011-2022 走看看