首页 > 其他分享 > P1790 小胡同学的连通图

P1790 小胡同学的连通图

时间:2023-05-25 11:56:03浏览次数:34  
标签:连通 int 胡同 init P1790 include 105

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
int par[105] = { 0 };
int rank0[105] = { 0 };
int root[105] = { 0 };
 
void init(int n) {
    for (int  i = 1; i <= n; i++)
    {
        par[i] = i;
        rank0[i] = 0;
    }
}
 
int find(int x) {
    if (par[x]==x)
    {
        return x;
    }
    else
    {
        return par[x] = find(par[x]);
    }
 
}
 
void unite(int x, int y) {
    x = find(x);
    y = find(y);
 
    if (x==y)
    {
        return;
    }
 
    if (rank0[x]<rank0[y])
    {
        par[x] = y;
 
    }
    else
    {
        par[y] = x;
        if (rank0[x]==rank0[y])
        {
            rank0[x]++;
        }
    }
 
}
 
bool same(int x, int y) {
    return find(x) == find(y);
}
int main() {
    int n, m;
    cin >> n >> m;
 
    init(n);
 
    int x, y;
    for (int i = 0; i < m; i++)
    {
        cin >> x >> y;
        unite(x, y);
 
    }
 
    for (int i = 1; i <= n; i++)
    {
            root[find(i)] = 1;
        
    }
    int num=0;
    for (int i = 1; i <=n; i++)
    {
        if (root[i]==1)
        {
            num++;
        }
    }
 
    num == 1 ? cout << "Yes" << endl : cout << "No" << endl;
    return 0;
}

 

标签:连通,int,胡同,init,P1790,include,105
From: https://www.cnblogs.com/lhf123/p/17430733.html

相关文章

  • P1779 小胡同学的跳板
    #include<iostream>#include<vector>#include<algorithm>#definexfirst#defineysecond#definepllpair<int,int>usingnamespacestd;intmain(){vector<pll>v;//n为跳板的个数intn=0;//m为终点的位置intm=0;......
  • POJ1737 Connected Graph ( n点无向连通图计数
    题意说明:求\(n\)个点的无向连通图个数据说已经非常典了,但是我太菜了不会组合数学,最近补档时看到这道题,决定记录下来理理思路......
  • 测试远程端口是否连通
    telnetipportssh-v-pportipcurlip:portwgetip:portlinux检测端口命令linux测试端口命令(linux测试端口命令有哪些)......
  • 2023-05-12:存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号, 给你
    2023-05-12:存在一个由n个节点组成的无向连通图,图中的节点按从0到n-1编号,给你一个数组graph表示这个图,其中,graph[i]是一个列表,由所有与节点i直接相连的节点组成。返回能够访问所有节点的最短路径的长度。你可以在任一节点开始和停止,也可以多次重访节点,并且可以重......
  • 「学习笔记」双连通分量、割点与桥
    文章图片全部来自Oi-wiki,部分图片加以修改前面我们在学tarjan算法时,提到过强连通分量,即有向图上的环,那么无向图上是否也有强连通分量呢?很遗憾,没有但是,无向图有双连通分量!分为点双连通和边双连通(下面简称点双和边双)。边双连通分量概念在一张联通的无向图中,对于两个点\(x......
  • 2023-05-05:给定一个无向、连通的树 树中有 n 个标记为 0...n-1 的节点以及 n-1 条边
    2023-05-05:给定一个无向、连通的树树中有n个标记为0...n-1的节点以及n-1条边。给定整数n和数组edges,edges[i]=[ai,bi]表示树中的节点ai和bi之间有一条边。返回长度为n的数组answer,其中answer[i]:树中第i个节点与所有其他节点之间的距离之和。输入......
  • Ansible-受控主机配置并测试连通性
    1.Ansible配置文件[root@masterhome]#ansible--versionansible2.9.27configfile=/etc/ansible/ansible.cfgconfiguredmodulesearchpath=[u'/root/.ansible/plugins/modules',u'/usr/share/ansible/plugins/modules']ansiblepython......
  • 12.石油储备(简单搜索 DFS/BFS 统计连通块个数)
    石油储备题目一片土地可以看作是一个\(n\)行\(m\)列的方格矩阵。其中一些方格藏有石油,用@表示,其余方格没有石油,用*表示。每个方格都与其上、下、左、右、左上、右上、左下、右下八个方格视为相邻。如果两个藏有石油的方格相邻,则它们被认为是处于同一片油田,否则它们被......
  • # 连通分量题目集
    稳定婚姻我也不知道是怎么乱搞出来的……首先考虑如果拆掉关系之后会怎么样,显然男的会找女的,然后拆散一对夫妻之后男二又去找女二……由此,形成一个环状的结构,且单向由男连向女。然后最初的夫妻关系,由女连男,这对应了夫妻的拆开。接着显然拆掉这条边不会影响其他连通块,以至于只......
  • 连通区域(Connected Components)问题
    packagemain.java.test;importjava.util.Arrays;importjava.util.Scanner;publicclasst5{publicstaticvoidmain(String[]args){//Scannersc=newScanner(System.in);//Strings=sc.nextLine();Strings="35&qu......