首页 > 其他分享 >Atcoder abl c

Atcoder abl c

时间:2023-10-02 22:04:35浏览次数:40  
标签:Atcoder int 样例 abl back dfs

传送门

题目描述

有n个城市,m条双向路的图,问你最少添加几条路使得任意两个城市可以两两到达?

样例

样例输入

3 1
1 2

样例输出:

1

题目解析

这是个双向路的图,我们可以把它当成一个非连通图。在各个点之间有连线,要求我们算出如何能将整个图的各个部分连接起来。那么,我们只要算出这个非连通图由几个区域(部分)组成。然后减1,也就是将他们连接起来的边的个数,那么此时,任意一个城市就能到其他任意的城市了。

代码实现

#include<bits/stdc++.h>
using namespace std;
int a[100005];
vector<int> b[100005];

void dfs(int u){
    a[u]=1;
    for(int v:b[u]){
        if(!a[v]){
            dfs(v);
        }
    }
    //return ;
}

int find(int n){
    int c=0;
    for(int i=1;i<=n;i++){
        if(!a[i]){
            c++;
            dfs(i);
        }
    }
    return c;
}

int main(){
    int n,m;
    cin>>n>>m;

    for(int i=0;i<m;i++){
        int x,y;
        cin>>x>>y;
        b[x].push_back(y);
        b[y].push_back(x);
    }
    int c=find(n);
    cout<<c-1<<endl;
    return 0;
}

说明

这是我初一刚学算法那会写的代码,年久失修,不对的请指正。

标签:Atcoder,int,样例,abl,back,dfs
From: https://www.cnblogs.com/j1hx-oi/p/17740466.html

相关文章

  • AtCoder——第一题
    AtCoderBeginnerContest322FVacationQuery题目大意处理01字符串,给定Q次询问,询问区间内最长连续1的字符个数题目理解使用线段树维护区间需要使用懒标记下传修改信号线段树要维护7个信息(区间的最长连续1的个数、区间左端点开始连续1的个数、区间左端点开始连续0的个数......
  • Torch not compiled with Cuda enabled 解决办法
    确保下方指令运行有效:nvcc--version进入指定虚拟环境下运行下方指令:condainstallpytorch==1.11.0torchvision==0.12.0torchaudio==0.11.0cudatoolkit=11.3-cpytorch参考来源......
  • Java 21 新特性:Unnamed Patterns and Variables
    Java21中除了推出JEP445:UnnamedClassesandInstanceMainMethods之外,还有另外一个预览功能:未命名模式和变量(UnnamedPatternsandVariables)。该新特性的目的是提高代码的可读性和可维护性。下面通过一个例子来理解这个功能,try-catch块相信大家都不陌生,都是这样写的:try{......
  • AtCoder Grand Contest 056 D Subset Sum Game
    洛谷传送门AtCoder传送门考虑若\(n\)是奇数怎么做。枚举Alice第一次选的数\(a_i\),然后考虑把剩下的数两两结成一个匹配,若Bob选了其中一个,Alice就选另一个。容易发现排序后奇数位和它右边的偶数位匹配最优。那么设奇数位的和为\(A\),偶数位的和为\(B\),此时Alice获胜......
  • C++中mutable关键字学习
    转自:https://liam.page/2017/05/25/the-mutable-keyword-in-Cxx/,讲的很好。1.介绍mutable即可变的,mutable只能用来修饰类的数据成员;而被mutable修饰的数据成员,可以在const成员函数中修改。例子:classHashTable{public://...std::stringlookup(conststd::......
  • AtCoder Beginner Contest 178 E
    AtCoderBeginnerContest178EE-DistMax曼哈顿距离最大点对\(ans=max(|x_i-x_j|+|y_i-y_j|)\)考虑去绝对值,4种情况。sort一下取max即可。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=2e5+10;intx[N],y[N];intp[4][N];......
  • pyqt5-QTableWidgetItem表格单元格组件
    1、介绍QTableWidgetItem,表格单元格组件。QTableWidgetItem(type:int=QTableWidgetItem.ItemType.Type)QTableWidgetItem(text:str,type:int=QTableWidgetItem.ItemType.Type)QTableWidgetItem(icon:QIcon,text:str,type:int=QTableWidgetItem.ItemType.Type)......
  • pyqt5-QTableWidget表格组件
    1、介绍QTableWidget,表格组件。2、行和列setColumnCount(self,columns:int)设置表格的列数,默认是0如果列数为0,则不会显示行,即使行数不为0columnCount(self)->int返回表格的列数setRowCount(self,rows:int)设置表格的行数rowCount(self)->int返回表格的......
  • AtCoder Beginner Contest 322
    A-FirstABC2解题思路签到Code#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;voidsolve(){ intn; cin>>n; strings; cin>>s; intp=s.find("ABC"); if(p==-1)cout<<p<<'\n&......
  • Go每日一库之158:termtables(表格形式数据输出)
    简介今天学个简单点的,[termtables](https://github.com/scylladb/termtables)处理表格形式数据的输出。适用于随时随地的输出一些状态或统计数据,便于观察和调试。是一个很小巧的工具库。我在学习[dateparse](https://darjun.github.io/2021/06/24/godailylib/dateparse/)库时偶尔......