无向图中各个连通分量的最小花费之和

dfs函数的逻辑如下:

  1. 首先,检查节点 i 是否已经被访问过。如果 vis[i] 的值为 1,表示节点已访问过,那么函数直接返回,不再继续向下访问该节点及其相邻节点。

  2. 如果节点 i 尚未被访问过,则将 vis[i] 的值设置为 1,表示节点已访问。

  3. 将节点 i 的花费值 p[i] 与当前连通分量的最小花费值 mn 进行比较,更新 mn 的值为两者的较小值。

  4. 遍历节点 i 的所有相邻节点 j,并递归地调用 dfs(j),以访问相邻节点 j 的连通分量。

通过递归调用,函数会不断深入图中的连通分量,直到访问完所有与起始节点连通的节点为止。在此过程中,函数会更新每个连通分量的最小花费值 mn,确保每个连通分量的最小花费值都被记录下来。

最终,通过遍历所有节点,并对未访问过的节点调用 dfs 函数,可以找到图中的所有连通分量,并计算每个连通分量的最小花费值。

#include<iostream>
#include<cmath>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
bool vis[1000001];
vector<int>v[100001];
long long int cnt=0;
int p[1000001];
int maxx=1e9+10;
int mn=maxx;//当前连通所要花费的最小值
void dfs(int i)
{if(vis[i]==1){return ;}vis[i]=1;mn=min(mn,p[i]);   for(auto j:v[i]){dfs(j);}
}
int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>p[i];}for(int i=1;i<=m;i++){int x,y;cin>>x>>y;v[x].push_back(y);v[y].push_back(x);}for(int i=1;i<=n;i++){if(vis[i]==0){dfs(i);//cout<<mn<<" ";cnt+=mn,mn=maxx;}}cout<<cnt<<endl;
}

CF:C. Rumor相关推荐

  1. ML之RS之CF:基于用户的CF算法—利用大量用户的电影及其评分数据集对一个新用户Jason进行推荐电影+(已知Jason曾观看几十部电影及其评分)

    ML之RS之CF:基于用户的CF算法-利用大量用户的电影及其评分数据集对一个新用户Jason进行推荐电影+(已知Jason曾观看几十部电影及其评分) 目录 输出结果 实现代码 输出结果 先看推荐结果显 ...

  2. cf修复服务器,CF:“卡顿”问题终于得到重视!新版本宣布修复,玩家这下开心了...

    原标题:CF:"卡顿"问题终于得到重视!新版本宣布修复,玩家这下开心了 相信各位玩家都知道,CF是一款非常经典的射击类端游,早在许久之前的2008年就正式上线,一直运营至今,已经陪 ...

  3. cf四大服务器位置,CF:从最初的42个服务器到现在的四大战区,穿越火线还能火多久?...

    原标题:CF:从最初的42个服务器到现在的四大战区,穿越火线还能火多久? 穿越火线于近日进行了一波重大的更新,最引人注目的就是"跨区作战"了,也就是我们所说的合区,从2017年开始 ...

  4. cf大区服务器显示人数合区后,CF:各大区迎来合并,未来只有4大战区,看看自己属于哪个战区?...

    原标题:CF:各大区迎来合并,未来只有4大战区,看看自己属于哪个战区? 穿越火线可以说是一款十分经典的第一人称射击类游戏,从上线以来就受到了很多人的喜爱和欢迎,如今穿越火线虽然不如当年那样火爆无比了, ...

  5. cf服务器维修好久,cf:真懒!用了这么久evo却不知道维修,耐久度都快没了!...

    原标题:cf:真懒!用了这么久evo却不知道维修,耐久度都快没了! 哈喽大家好,我是殿堂君,一位CF老玩家.自从2009年入坑以来,不知不觉已经玩了10年,虽然现在工作非常繁忙,但是每当闲下来的时候, ...

  6. cf服务器人最多,CF:曾经最最牛、人数最多的区,现在沦为最惨大区,让人感慨...

    原标题:CF:曾经最最牛.人数最多的区,现在沦为最惨大区,让人感慨 CF:曾经最最牛.人数最多的区,现在沦为最惨大区,让人感慨 哈喽,大家好,CF作为前几年最火爆的端游,也可以算是军事主义题材游戏的领 ...

  7. cf服务器优化,CF:吃鸡模式是否成为鸡肋,服务器卡顿的罪魁祸首?

    原标题:CF:吃鸡模式是否成为鸡肋,服务器卡顿的罪魁祸首? 如今的绝地求生只能用"现象级"游戏来形容,它最终的命运绝对不会和经典二字沾边.科技玩家的猖獗,火爆后的内容上的创新疲软乏 ...

  8. cf战队服务器怎么分配位置,CF:全服最强排位上分车队,五个位置全部顶尖,请问怎么才能输...

    #游戏圈灯谜大会# 枪王排位眼看就要结束了,这个时候很多小伙伴都在努力上分,不过要心疼一下北部的小伙伴,因为在这个服务器出现了一支超级上分队伍,这五人在各自位置上都是最顶尖的存在,要说上分速度,他们可 ...

  9. 板刷CF:数学1500-2100

    1.1542C 题目链接:题目链接 分析: 1.1542C,对于一个数n我们要求其最小的不能整除他的数,我们需要从1开始逐一枚举,显然这样数量级是很大的,所以我们需要想其他的解决办法,那么我们对小数据 ...

最新文章

  1. [bzoj3926][Zjoi2015]诸神眷顾的幻想乡
  2. ElasticSearch 实践过程中遇到的几个小问题
  3. hadoop 常用hdfs命令
  4. 如何创建自定义性能计数器
  5. laravel 创建自定义的artisan make命令来新建类文件
  6. 回文绝对求下联:亚冠决赛决冠亚
  7. mairdb自动备份_MariaDB 备份方法
  8. 90期:我在系统设计上犯过的14个错
  9. 使用Mapviz,进行机器人GPS轨迹卫星地图绘制(2)-调用天地图API,快速加载刷新地图
  10. OLED取模-PS做图转字模提取软件
  11. 4.16 Android 感应器实现摇一摇的功能
  12. BZOJ4379: [POI2015]Modernizacja autostrady
  13. 【OpenSource】开源管理平台BlackDuck简介
  14. 全球及中国可穿戴科技设备行业前景动态及投资趋势预测报告2022-2027年
  15. 比较详细的采访 Vue 作者尤雨溪
  16. PBA简介 全称PMI-PBA
  17. 替换插件解决Microsoft Edge浏览器Flash Player地区不兼容问题
  18. 汽车美容“现状”解决方案!
  19. linux操作redis
  20. 物流信息管理php,物流信息管理平台设计与实现PHP1012(毕业设计+论文)

热门文章

  1. 超酷模仿LOL界面用Qt实现连接mysql数据库登陆,并记住账号——附代码下载、mysql驱动
  2. HTML入门笔记15-HTML中插入外部链接
  3. Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差
  4. 电脑有网浏览器没网(解决)
  5. Fenix LD10 Flashlight R5
  6. Android实现一键获取课程成绩dome
  7. 如何下载延庆区卫星地图高清版大图
  8. android加固是什么意思,apk加固(乐固)
  9. 李刚疯狂Java习题练习
  10. 【深度强化学习】8. DDPG算法及部分代码解析