首页 > 其他分享 >C - Count Connected Components -- ATCODER

C - Count Connected Components -- ATCODER

时间:2023-01-08 18:11:44浏览次数:39  
标签:Count qu -- int edges Connected true first

C - Count Connected Components

https://atcoder.jp/contests/abc284/tasks/abc284_c

 

思路

寻找独立的子连通图个数。

 

使用map记录边,即点之间的连通性

使用vector记录顶点是否被访问过

使用queue对任意未访问点做bfs遍历, 并记录独立子连通图的个数。

 

Code

https://atcoder.jp/contests/abc284/submissions/37854694

int n, m;
map<int, map<int, bool>> edges;
 
int main()
{
    cin >> n >> m;
 
    for(int i=0; i<m; i++){
        int u, v;
        cin >> u >> v;
 
        edges[u][v] = true;
        edges[v][u] = true;
    }
 
    int count = 0;
    vector<bool> v(n+1, false);
    while(true){
        int ff = 0;
        
        for(int i=1; i<=n; i++){
            if(v[i] == false){
                ff = i;
                count++;
                break;
            }
        }
        
        if (ff == 0){
            break;
        }
        
        queue<int> qu;
        qu.push(ff);
        while(!qu.empty()){
            int first = qu.front();
            qu.pop();
            if (v[first] == true){
                continue;
            }
            
            v[first] = true;
            for(auto itr: edges[first]){
                qu.push(itr.first);
            }
        }
    }
 
    cout << count << endl;
 
    return 0;
}
 

 

标签:Count,qu,--,int,edges,Connected,true,first
From: https://www.cnblogs.com/lightsong/p/17035021.html

相关文章

  • (转)Go test 详解
    原文:https://www.jianshu.com/p/b28595a281ecGotest的测试用例形式测试用例有四种形式:TestXxxx(t*testing.T)//基本测试用例BenchmarkXxxx(b*testing.B)//......
  • 背包问题
    背包问题0-1背包动态转移方程\(dp_{i,j}\)代表在背包容量只有\(i\)的时候,拿前\(j\)件物体能拿最大的价值。\[\begin{cases}dp_{i,j}=dp_{i,j-1}(背包容量不够时,W_i>......
  • 数论分块
    数论分块数论分块可以快速计算一些含有除法向下取整的和式(即形如\(\sum_{i=1}^{n}f(i)g\left(\left\lfloor\dfrac{n}{i}\right\rfloor\right)\)的和式)。当可以......
  • 百度收录意味着什么?百度近日收录如何查询?
    百度收录意味着什么呢?做站的小伙伴,每天最关心的内容就是自己的网站有没有被收录,或者最近一段时间发的软文有没有被收录。大家都知道一个网站需要经过从网站建设到收录、权重......
  • 23届秋招,寒气逼人。。
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招......
  • 高校人事信息化建设
       高校人事系统可以从建设思路、建设情况(建设时间、核心应用)、建设亮点、建设效果等角度设计。   一、建设思路    薪酬体系搭建、保障师资建设;巧用考......
  • javascript 操作剪切板
    此库优点:支持电脑和手机端浏览器第一步:声明一个对象$(function(){varclipboard=newClipboardJS(document.getElementById("btnCopyFileShareLink"......
  • JAVA工程师学习教程之Set和HashMap集锦
    day14_JAVAOOP课程目标1.【理解】Set集合的特点2.【理解】Set集合不重复的原理3.【掌握】HaseSet集合的基本使用4.【理解】LinkedHashSet的特点5.【理解】Map集......
  • ip link show type
     ip-detailslinkshow  type在第三行,loopback物理wifi等没有type ip-details-jsonlinkshow|jq--join-output'.[]|if.ifname!=null......
  • JAVAEE工程师零基础学习教程之泛型类和File类
    day15_JAVAOOP课程目标1.【理解】什么是泛型2.【掌握】泛型的基本使用3.【理解】什么是Collections工具类4.【理解】什么是File类5.【掌握】File类的常用功能6.......