HDU5631(并查集)
来源:互联网 发布:网络借贷平台推广渠道 编辑:程序博客网 时间:2024/06/08 02:09
题目大意:n个顶点,n+1条边,问删除几个边之后仍是连通图的方案数有多少?
思路:如果图连通的话,只能删1~2条边,而且题目数据小,所以暴力就好。
#include <cstdio>#include <algorithm>#include <cstring>#include <iostream>#include <cmath>#include <string>using namespace std;int fa[111];int from[111], to[111];int n;void init(){ for(int i=0; i<=n; i++) { fa[i] = i; }}int find_fa(int x){ return fa[x] == x ? fa[x] : fa[x] = find_fa(fa[x]);}int main(){ int T; scanf("%d", &T); while(T--) { scanf("%d", &n); for(int i=0; i<=n; i++) { scanf("%d%d", &from[i], &to[i]); } int sum; int ans = 0; for(int i=0; i<=n; i++) { sum = n; init(); for(int j=0; j<=n; j++) { if(j != i) { int fx = find_fa(from[j]); int fy = find_fa(to[j]); if(fx != fy) { fa[fx] = fy; sum--; } } } if(sum == 1) ans++; } for(int i=0; i<=n; i++) { for(int j=i+1; j<=n; j++) { init(); sum = n; for(int k=0; k<=n; k++) { if(k != i && k != j) { int fx = find_fa(from[k]); int fy = find_fa(to[k]); if(fx != fy) { fa[fx] = fy; sum--; } } } if(sum == 1) ans++; } } printf("%d\n", ans); } return 0;}
0 0
- HDU5631(并查集)
- HDU5631--Rikka with Graph--并查集
- HDU5631并查集检验图连通
- HDU5631——Rikka with Graph【并查集】
- 并查集例题【hdu1232畅通工程,九度1444,hdu5631枚举删除边】
- hdu5631
- HDU3938 并查集 并查集
- 并查集(集并查)
- HDU1232 并查集<并>
- 并查集
- 数据结构-并查集
- 并查集
- 并查集!
- 并查集
- 并查集
- 并查集
- 并查集
- 并查集总结
- WEIS创意晨鸟钟
- C++控制台程序实现暂停功能
- android 将数据以文件的形式保存进sd卡并调用系统所装软件打开
- android 获取当前的activity
- Android完美解决GridView异步加载图片和加载大量图片时出现OOM
- HDU5631(并查集)
- 自定义Toast样式
- APP测试流程
- 小鸡 宕机的过程记录在实例告警日志中
- freemarker切割字符串长度
- 网络框架Volley原理分析
- redis服务器初始化化
- CentOS7下为php7安装扩展
- 对待开源的态度