UVA 10600 ACM Contest and Blackout (次小生成树)
题目大意:
给n个节点,m条边,问最小生成树,次小生成树?
ps:以前做次小生成树的时候估计没有掌握牢固,这次wa的好辛苦哟。
1 #include <cmath> 2 #include <queue> 3 #include <string> 4 #include <cstdio> 5 #include <cstring> 6 #include <iostream> 7 #include <algorithm> 8 using namespace std; 9 10 const int maxn = 100; 11 const int INF = 0x3f3f3f3f; 12 const double Exp = 1e-10; 13 14 int cost[maxn+10][maxn+10], lowc[maxn+10], vis[maxn+10]; 15 int Max[maxn+10][maxn+10], used[maxn+10][maxn+10], pre[maxn+10]; 16 int n; 17 void init () 18 { 19 for (int i=1; i<=n; i++) 20 for (int j=1; j<=n; j++) 21 if (i == j) 22 cost[i][j] = 0; 23 else 24 cost[i][j] = INF; 25 } 26 int prim () 27 { 28 int i, j, sum = 0; 29 memset (Max, 0, sizeof(Max)); 30 memset (used, 0, sizeof(used)); 31 memset (vis, 0, sizeof(vis)); 32 vis[1] = 1; 33 for (i=1; i<=n; i++) 34 { 35 lowc[i] = cost[1][i]; 36 pre[i] = 1; 37 } 38 for (i=1; i<n; i++) 39 { 40 int p, mini = INF; 41 for (j=1; j<=n; j++) 42 if (!vis[j] && mini > lowc[j]) 43 { 44 p = j; 45 mini = lowc[j]; 46 } 47 vis[p] = 1; 48 sum += mini; 49 used[pre[p]][p] = used[p][pre[p]] = 1; 50 for (j=1; j<=n; j++) 51 {//这一点的错误wa的好苦 52 if (vis[j] && j != p)//p!=j一定要有,否则Max[i][i]的距离就可能会不等于零,影响后面的计算过程 53 Max[j][p] = Max[p][j] = max(Max[j][pre[p]], lowc[p]); 54 if (!vis[j] && lowc[j] > cost[p][j]) 55 { 56 lowc[j] = cost[p][j]; 57 pre[j] = p; 58 } 59 } 60 } 61 return sum; 62 } 63 int smst (int sum) 64 { 65 int i, j, mini = INF; 66 for (i=1; i<=n; i++) 67 for (j=i+1; j<=n; j++) 68 if (cost[i][j] != INF && !used[i][j]) 69 mini = min (mini, sum + cost[i][j] - Max[i][j]); 70 return mini; 71 } 72 int main () 73 { 74 int t, m; 75 scanf ("%d", &t); 76 while (t --) 77 { 78 scanf ("%d %d", &n, &m); 79 init (); 80 while (m --) 81 { 82 int a, b, c; 83 scanf ("%d %d %d", &a, &b, &c); 84 cost[a][b] = cost[b][a] = c; 85 } 86 int num1, num2; 87 num1 = prim (); 88 num2 = smst (num1); 89 printf ("%d %d\n", num1, num2); 90 } 91 return 0; 92 }
转载于:https://www.cnblogs.com/alihenaixiao/p/4549538.html
UVA 10600 ACM Contest and Blackout (次小生成树)相关推荐
- UVA 10600 Masud Rana
点击打开链接 Problem A ACM CONTEST AND BLACKOUT In order to prepare the "The First National ACM Schoo ...
- [2012山东ACM省赛] The Best Seat in ACM Contest (模拟)
The Best Seat in ACM Contest Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Cainiao is a ...
- https://www.nowcoder.com/acm/contest/107/F
链接: https://www.nowcoder.com/acm/contest/107/F 来源:牛客网 在学习Operating System的过程中,Glory遇到了这样一个问题,现在有一个大小 ...
- https://ac.nowcoder.com/acm/contest/317/D
链接:https://ac.nowcoder.com/acm/contest/317/C 来源:牛客网 小a与星际探索 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- 2022/7/17/题解2022河南萌新联赛第(二)场:河南理工大学https://ac.nowcoder.com/acm/contest/37344
A题:https://ac.nowcoder.com/acm/contest/37344/A 看代码比说结论要快得多 #include<bits/stdc++.h> using names ...
- 牛客-https://www.nowcoder.com/acm/contest/96/H
链接:https://www.nowcoder.com/acm/contest/96/H 来源:牛客网 题目描述 今天qwb要参加一个数学考试,这套试卷一共有n道题,每道题qwb能获得的分数为ai,q ...
- ACM题目————次小生成树
Description 最小生成树大家都已经很了解,次小生成树就是图中构成的树的权值和第二小的树,此值也可能等于最小生成树的权值和,你的任务就是设计一个算法计算图的最小生成树. Input 存在多组数 ...
- UVA 1494 - Qin Shi Huang's National Road System(次小生成树)
题目链接:点击打开链接 题意:n个城市,需要修建一些道路使得任意两个城市联通,还可以修一条魔法道路, 不花钱, 设魔法路连接的城市的人口之和为A, 所有道路总长为B, 求A/B的最大值. 思路: 次小 ...
- 模板 - LCA最近公共祖先(倍增法、Tarjan、树上差分、LCA优化的次小生成树)
整理的算法模板合集: ACM模板 注意x和y的LCA可以是x或者y本身 一.LCA的在线倍增算法 /*给定一棵包含 n个节点的有根无向树,有 m个询问,每个询问 给出了一对节点的编号 x和 y,询问 ...
最新文章
- linux平台调试终端,10款Linux平台上优秀的调试器,总有一款适合你!
- 深度解析机器学习中的置信区间(附代码)
- supervisor配置环境变量(PATH)
- Java并发编程实战————Executor框架与任务执行
- [机器学习]正则化项L1和L2的学习与理解
- man 输出的帮助信息输出到文件中
- PyTorch 学习笔记(一):让PyTorch读取你的数据集
- mongodb在ubuntu下无法打开的问题
- 水利水电专业英语(2.5k行超全)
- navicat 10.1.7 注册码
- 通常所说的微型计算机的主机主要包括(),微型计算机的主机主要包括
- c++_十进制数-10的三进制4位补码是多少?
- springboot集成kettle, 访问不到ktr文件
- BSP板机支持包、linux启动分析、ARM裸机编程
- TCP/IP协议分析实验
- @Transactional注解怎么使用?
- 如何做一个小程序商城,需要多少钱
- GitChat·技术管理 | Cynefin 框架和不确定性管理思维
- bat批处理定时重启应用程序
- 利用JAVA多线程模拟售票系统,对统一资源进行处理
热门文章
- php 编程祝新年快乐_用于测试自动化的7种编程语言
- 2020暨阳学院园林计算机考研考场,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...
- java三大特性 继承_java基础(二)-----java的三大特性之继承
- excel文件被写保护怎么解除_u盘被写保护怎么解除,看完你就知道了
- ibm+x3650+m4+linux+raid驱动,IBM X3650M4阵列卡驱动下载
- anaconda如何卸载库_小白必看!Anaconda安装全攻略
- echarts formatter鼠标悬停显示信息
- 【数据结构基础应用】【顺序表】
- 如何在Java中同步ArrayList?
- Java Compiler disable()方法与示例