当前位置: 首页 > news >正文

编程刷题-资料分发1 图论/DFS

P2097 资料分发 1

题目描述

有一些电脑,一部分电脑有双向数据线连接。

如果一个电脑得到数据,它可以传送到的电脑都可以得到数据。

现在,你有这个数据,问你至少将其输入几台电脑,才能使所有电脑得到数据。

输入格式

第一行两个整数 n,mn,mn,mnnn 是点数,mmm 是边数。

接下来 mmm 行,每行 222 个整数 p,qp,qp,q,表示 pppqqq 有一条双向数据线。

输出格式

一个整数,表示至少输入的电脑数量。

输入输出样例 #1

输入 #1

4 5
1 2
1 3
2 3
2 1
3 4

输出 #1

1

说明/提示

对于 30%30\%30% 的数据,n≤100n \le 100n100m≤1000m \le 1000m1000

对于 60%60\%60% 的数据,n≤2000n \le 2000n2000

对于 100%100\%100% 的数据,0≤n≤1050 \le n \le 10^50n1050≤m≤2×1050 \le m \le 2 \times 10^50m2×1051≤p,q≤n1 \le p,q \le n1p,qn

数据可能存在重边自环。

dfs解法

#include <bits/stdc++.h>
#include <vector>
using namespace std;
vector <int> p[100001];
int ans;
int n,m,a,b;
int vis[100001];void dfs(int x){for(int i=0;i<p[x].size();i++){if(vis[p[x][i]]==0){vis[p[x][i]]=1;dfs(p[x][i]);}}
}int main()
{cin>>n>>m;for(int i=0;i<m;i++){cin>>a>>b;p[a].push_back(b);p[b].push_back(a);}for(int i=1;i<=n;i++){if(vis[i]==0){ans++;vis[i]=1;dfs(i);}}cout<<ans;return 0;
}
http://www.dtcms.com/a/341958.html

相关文章:

  • Kotlin-基础语法练习二
  • Android面试指南(四)
  • [新启航]机械深孔加工质控:新启航方案用激光频率梳破解 130mm 深度遮挡瓶颈
  • 闲聊汽车芯片的信息安全需求和功能
  • C# NX二次开发:反向控件和组控件详解
  • 智慧巡检新标杆:智能移动机器人——电力行业的守护者
  • 【数据结构】树与二叉树:结构、性质与存储
  • 解码欧洲宠物经济蓝海:跨境电商突围的战略逻辑与运营范式
  • Vue2+Vue3前端开发_Day5
  • 【PZ-A735T-KFB】璞致fpga开发板 Artix-7 系列之PA-Starlite-初学入门首选 开发板用户手册
  • 《Python 整数列表分类:巧妙将负数移到正数前面》
  • 力扣hot100:无重复字符的最长子串,找到字符串中所有字母异位词(滑动窗口算法讲解)(3,438)
  • LeetCode每日一题,2025-08-21
  • C++——C++重点知识点复习2(详细复习模板,继承)
  • 2.Shell脚本修炼手册---创建第一个 Shell 脚本
  • C++ string类(reserve , resize , insert , erase)
  • 鸿蒙中网络诊断:Network分析
  • 深入理解JVM内存结构:从字节码执行到垃圾回收的全景解析
  • 金山云Q2营收23.5亿元 AI战略激活业务增长新空间
  • Altium Designer 22使用笔记(8)---PCB电气约束设置
  • GitHub Copilot - GitHub 推出的AI编程助手
  • Pytorch框架学习
  • Bigemap APP 详细使用教程,入门学习PPT
  • element table 表格多选框选中高亮
  • KubeBlocks for ClickHouse 容器化之路
  • 【运维进阶】shell三剑客
  • DeepSeek大模型如何重塑AI Agent?从技术突破到行业落地
  • 环境搭建-dockerfile构建镜像时apt软件包出现exit100错误+ pip下载python库时下载过慢的解决方法
  • SpringWeb详解
  • CorrectNav——基于VLM构建带“自我纠正飞轮”的VLN:通过「视觉输入和语言指令」预测导航动作,且从动作和感知层面生成自我修正数据