博客
关于我
Codeforces Round #599 (Div. 1) B. 0-1 MST(图论+dfs)
阅读量:390 次
发布时间:2019-03-05

本文共 632 字,大约阅读时间需要 2 分钟。

在这里插入图片描述
在这里插入图片描述
思路:答案很容易想到就是非直连边的连通块的数量-1,这题难就难在你想到了,但你不会实现。。。
vis一开始存的是所有点,temp存的就是与当前点x的非直连点,每次dfs到一个点的时候就将与他非直连点从vis里删除。

#include
using namespace std;const int maxn = 1e5+1;set
g[maxn],vis;//vis是非直连边的集合 int n,m,v[maxn],ans;void dfs(int x){ v[x]=1; vis.erase(x); vector
temp; for(int it:vis) if(!g[it].count(x)) temp.push_back(it); for(int i:temp) vis.erase(i); for(int i:temp) dfs(i); }int main(){ scanf("%d%d",&n,&m); for(int i=1,u,v;i<=m;++i) { scanf("%d%d",&u,&v); g[u].insert(v);g[v].insert(u); } for(int i=1;i<=n;++i) vis.insert(i); for(int i=1;i<=n;++i) if(!v[i]) ans++,dfs(i); printf("%d\n",ans-1); }

转载地址:http://moewz.baihongyu.com/

你可能感兴趣的文章
MySQL in 太多过慢的 3 种解决方案
查看>>
MySQL InnoDB 三大文件日志,看完秒懂
查看>>
Mysql InnoDB 数据更新导致锁表
查看>>
Mysql Innodb 锁机制
查看>>
MySQL InnoDB中意向锁的作用及原理探
查看>>
MySQL InnoDB事务隔离级别与锁机制深入解析
查看>>
Mysql InnoDB存储引擎 —— 数据页
查看>>
Mysql InnoDB存储引擎中的checkpoint技术
查看>>
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
查看>>
MySQL InnoDB引擎的锁机制详解
查看>>
Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
查看>>
mysql InnoDB数据存储引擎 的B+树索引原理
查看>>
mysql innodb通过使用mvcc来实现可重复读
查看>>
mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
查看>>
mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
查看>>
Mysql join原理
查看>>
MySQL Join算法与调优白皮书(二)
查看>>
Mysql order by与limit混用陷阱
查看>>
Mysql order by与limit混用陷阱
查看>>
mysql order by多个字段排序
查看>>