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

GESP2025年9月认证C++七级( 第三部分编程题(1)连通图)

参考程序:

#include <bits/stdc++.h>
using namespace std;struct DSU {vector<int> p, r;DSU(int n): p(n+1), r(n+1, 0) {for (int i = 1; i <= n; ++i) p[i] = i;}int find(int x) {if (p[x] != x) p[x] = find(p[x]);return p[x];}void unite(int a, int b) {a = find(a); b = find(b);if (a == b) return;if (r[a] < r[b]) swap(a,b);p[b] = a;if (r[a] == r[b]) r[a]++;}
};int main() {int n, m;cin >> n >> m;DSU dsu(n);for (int i = 0; i < m; ++i) {int u, v; cin >> u >> v;if (u >= 1 && u <= n && v >= 1 && v <= n) dsu.unite(u, v);}int components = 0;for (int i = 1; i <= n; ++i) if (dsu.find(i) == i) components++;cout << max(0, components - 1) << "\n";return 0;
}

参考程序2(简化):

#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 1e5 + 5;
int n, m;
int f[N];
int ans;
int getf(int u) 
{ return f[u] ? f[u] = getf(f[u]) : u; 
}
int main() 
{scanf("%d%d", &n, &m);for (int i = 1; i <= m; i++) {int u, v;scanf("%d%d", &u, &v);if (getf(u) != getf(v)) f[getf(u)] = v;}for (int i = 1; i <= n; i++) ans += getf(i) == i;printf("%d\n", ans - 1);return 0;
}

http://www.dtcms.com/a/533772.html

相关文章:

  • Python基于Django的信息安全领域中语义搜索引擎的设计与实现(附源码,文档说明)
  • 中国有多少网站有多少域名途途外贸企业网站管理系统
  • 网站建设好了怎么弄手机网站建设网站快速被百度收录
  • 003-Spring AI Alibaba Mem0 功能完整案例
  • 陕西交通建设集团西镇分公司网站常见的系统优化软件
  • 成都建站代理公司是干什么的
  • 软件项目管理的意义深圳seo优化服务
  • redlock的分布式锁方案
  • 外汇交易名词解释
  • 建设网站需要花钱吗网络营销公司做得比较好的
  • 网站建设属于固定资产吗十大软件排行榜下载
  • 设计网站推荐知乎手机网站建设多少钿
  • 企业网站建设推广含义株洲网络推广
  • 卡号生成网站设计与实现
  • 建网站pc版大连网红餐厅
  • 大数据方法论与实践指南-企业目标管理
  • wordpress免费教程视频教程宁波抖音seo公司
  • 公司网站一定要域名吗网站内链建设锚文字建设
  • 网站右下角弹窗代码仿所有网站
  • 响应式外贸营销网站凡科互动官网登录
  • 怎么做免费的宣传网站无限看片的视频大全免费下载
  • 用 Google Hacking 语法高效挖掘漏洞与敏感信息
  • 怎么设置网站100款禁用网站
  • 化妆品网站欣赏男女做羞羞漫画网站
  • 网站风格优势网页美工设计学习
  • 免费外贸网站红花岗区建设局网站
  • bge-base embedder论文解读
  • 强化学习推荐系统:不同的探索策略——高斯探索策略(4.2)
  • 网站建设目标文档ps做任务挣钱的网站
  • 东莞在哪里学网站建设无形资产 网站开发