首页 > 编程语言 >C++ 公司数量 正解

C++ 公司数量 正解

时间:2023-09-23 15:22:27浏览次数:36  
标签:10 int 样例 C++ 认识 数量 公司 105

题目描述

在某个城市里住着 n 个人,现在给定关于 n 个人的 m 条信息(即某 2 个人认识),假设所有认识(直接或间接认识都算认识)的人一定属于同一个公司。

若是某两人不在给出的信息里,那么他们不认识,属于两个不同的公司。

已知人的编号从 1 至  n。

请计算该城市最多有多少公司。

输入

第一行:n(<=100,人数),

第二行:m(<=100,信息)

以下 m 行:每行两个数:i 和 j,中间一个空格隔开,表示 i 和 j 相互认识。

输出

输出一个正整数,代表公司的数量。

样例输入

11 
9 
1 2 
4 5 
3 4 
1 3 
5 6 
7 10 
5 10 
6 10 
8 9  

样例输出 

3


正解:
 1 #include <cstdio>
 2 using namespace std;
 3 const int N=105,M=105;
 4 int h[N],w[M],e[M],ne[M],idx,g[N][N],cnt,n,m,x,y,z;
 5 bool v[N];
 6 void dfs(int k)
 7 {
 8     v[k]=1;
 9     for(int i=1;i<=n;i++)
10     {
11         if(g[k][i]==1&&!v[i]) 
12         {
13             v[i]=1;
14             dfs(i);
15         }
16     }
17     return ;
18 }
19 int main()
20 {
21     scanf("%d%d",&n,&m);
22     for(int i=1;i<=m;i++)
23     {
24         scanf("%d%d",&x,&y);
25         g[x][y]=1;
26         g[y][x]=1;
27     }
28     for(int i=1;i<=n;i++)
29     {
30         if(v[i]==0)
31         {
32             cnt++;
33             dfs(i);    
34         }
35     }
36     printf("%d",cnt);
37     return 0;
38 }

 

 

标签:10,int,样例,C++,认识,数量,公司,105
From: https://www.cnblogs.com/766hjkasd/p/17724416.html

相关文章

  • 【Java 基础篇】Java可变参数:灵活处理不定数量的方法参数
    在Java编程中,可变参数是一项强大的功能,它允许你编写更加灵活的方法,接受不定数量的参数。本文将详细解释Java可变参数的用法、语法以及最佳实践。什么是可变参数?可变参数是Java5引入的一项功能,它允许你在方法中传递不定数量的参数。可变参数用三个点(...)表示,放置在方法参数的类型之......
  • C++11新标准
    c++11标准(1)一、longlong类型新增了类型longlong和unsignedlonglong,以支持64位(或更宽)的整型。在VS中,int和long都是4字节,longlong是8字节。在Linux中,int是4字节,long和longlong是8字节。二、char16_t和char32_t类型新增了类型char16_t和char32_t,以支持16位和32位......
  • 笔记 | C++ 命名空间
    命名空间(Namespace)是C++中用于组织和管理代码的重要机制。它允许开发者将一组相关的变量、函数、类等封装在一个独立的命名空间中,以避免命名冲突和提高代码的可维护性。本文将介绍命名空间的概念、如何应用命名空间,以及它的优点和缺点。命名空间的概念在C++中,命名空间是一个逻......
  • C++指针和地址偏移在HotSpot VM中的应用
     在前面我们介绍过new运算符,这个操作实际上上包含了如下3个步骤:调用operatornew的标准库函数。此函数会分配一块内存空间以便函存储相应类型的实例;调用相应类的构造函数;返回一个指向该对象的指针。在第一步中,其实我们可以自己写个operatornew函数对标准库函数进行重载,通......
  • c++ 数据类型及范围
    short:\(-2^{15}\sim2^{15}-1\)unsignedshort:\(0\sim2^{16}-1\)int:\(-2^{31}\sim2^{31}-1\)unsignedint:\(0\sim2^{32}-1\)longlong:\(-2^{63}\sim2^{63}-1\)unsignedlonglong:\(0\sim2^{64}-1\)参考资料:https://www.cnblogs.com......
  • C++笔记(细碎小知识点)1
    1.内联:写在类内或外部声明inline(编译器判断是否内联,不是满足上述条件就一定内联),优点更快2.protected:派生类可以直接调用基类的protected成员3.class类内默认private,struct内默认public4.构造函数最优写法,用初始化(只有构造函数有)效率比在函数中写更高(因编译器先进行初始化再执行......
  • Fallible point in C/C++
    Operator[]Theperformanceof[]inCandC++isdifferent.e.g.,whenyouexcuteA[index]IfAisaobject,itwillcalltheoperator[]IfAisapointer,itisequivalenttoA+indexSo,operatoroverloadingisinvalidtopointer.......
  • C++ 的cout.tellp()和cout.seekp()语法介绍
    无论是使用cout输出普通数据,用cout.put()输出指定字符,还是用cout.write()输出指定字符串,数据都会先放到输出流缓冲区,待缓冲区刷新,数据才会输出到指定位置(屏幕或者文件中)。值得一提的是,当数据暂存于输出流缓冲区中时,我们仍可以对其进行修改。ostream类中提供有tellp()和se......
  • C/C++ const关键字 解读
    Thecollocationbetweenconstandoriginalpointerisconfusedtomanypeople.Therearetwousagesofit.Thefirstoneisavariablepointerthatpointsaconstantdata.i.e.constint*p#include<iostream>intmain(){ inta=1,b=2; const......
  • C++ STL 容器简单讲解
    STL简单讲解网上有很多很好的资料可以参考而直接看标准是最准确清晰的vectorstackqueue/priority_queuedequearraymap/multimapset/multisetunordered_mapunordered_set关于指针和迭代器!!!pbds……本文默认认为读者会基本的STL应用。一切STL......