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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

codeforces 234E Champions' League

传送门&#xff1a;http://codeforces.com/problemset/problem/234/E 题目大意&#xff1a;&#xff08;注意要用文件&#xff09;有n个队伍&#xff0c;每个队伍都有一个积分&#xff0c;按照积分高低顺序列出4个等级&#xff08;每个等级n/4个&#xff0c;所以n一定是4的倍数…

前端技术之_CSS详解第五天

前端技术之_CSS详解第五天 一、行高和字号 1.1 行高 CSS中&#xff0c;所有的行&#xff0c;都有行高。盒模型的padding&#xff0c;绝对不是直接作用在文字上的&#xff0c;而是作用在“行”上的。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu…

pxe装机dhcp获取不到_关于PXE服务器环境搭建流程中遇到的问题及解决方法

环境准备中遇到的问题首先需要将系统镜像挂载到 /mnt&#xff1a;#mount /dev/sdd2 /mnt/usb_disk 将U盘挂载#cp rhel-server-7.6-x86_64-dvd.iso /home 系统镜像拷到本地#mount -o loop rhel-server-7.6-x86_64-dvd.iso /mnt问题&#xff1a;ifconfig命令未找到解决&#xff1…

DB天气app冲刺二阶段第七天

又冲刺了一个礼拜了 今天收获应该算是不小了 虽然进度上来说还是一点也没前进 但是找到了好几个突破口 明天继续 今天先不多说了困了。。转载于:https://www.cnblogs.com/gaih/p/4550612.html

一小时包教会 —— webpack 入门指南

什么是 webpack&#xff1f; webpack是近期最火的一款模块加载器兼打包工具&#xff0c;它能把各种资源&#xff0c;例如JS&#xff08;含JSX&#xff09;、coffee、样式&#xff08;含less/sass&#xff09;、图片等都作为模块来使用和处理。 我们可以直接使用 require(XXX) 的…

判断一个js对象,是否具有某个属性

一个对象&#xff0c;想必我们关注的最多的应该是它上面的属性有哪些吧。那么&#xff0c;怎么判断一个对象是否具有某个属性呢&#xff1f; 1 /*下面是一个对比&#xff0c;看看在判断是否包括一个键上面&#xff0c;Object结构和Set结构的写法不同。*/2 // 对象的写法3 …

JAVA如何代码静态检查术语_Sonar代码静态检查规则-JAVA篇(二)

最近又搜罗整理了一些代码扫描规则&#xff0c;今天继续把这些扫描规则分享给老铁们&#xff0c;以后想学一些开发规则了&#xff0c;直接打开学一学就好了。不多说&#xff0c;直接上干货&#xff01;规则五、".equals()" should not be used to test the values of…

【每日scrum】NO.5

进入冲刺第五天&#xff0c;软件的界面设计成为主打&#xff0c;收集学校的很多美图是我们组的任务&#xff1b; 问题在于软件已很难有很大的改进&#xff0c;大方向也都是变不了的转载于:https://www.cnblogs.com/wantong/p/4553003.html

Python Dataframe转List

1 from pandas import read_csv2 3 dataframe read_csv(rurl, nrows 86400, usecols [0,], enginepython)4 #nrows:读取行数&#xff0c;usecols[n,]:仅读取第n列&#xff0c;usecols[a,b,c]:读取a、b、c列5 dataset dataframe.values6 7 List []8 for k in dataset: 9 …

使用/proc/meminfo文件查看内存状态信息

在Linux下可以使用/proc/meminfo文件查看操作系统内存的使用状态# cat /proc/meminfo MemTotal: 16333852 kB MemFree: 1633564 kB Buffers: 212448 kB Cached: 4422808 kB SwapCached: 0 kB Active: 10343096 kB Inactiv…

java 简单图片浏览器_Java实现简单的图片浏览器

第一次写博客&#xff0c;不喜勿喷。最近一个小师弟问我怎么用Java做图片浏览器&#xff0c;感觉好久没玩Java了&#xff0c;就自己动手做了一下。学校的教程是用Swing来做界面的&#xff0c;所以这里也用这个来讲。首先要做个大概的界面出来&#xff0c;eclipse有一个很好用的…

60. Spring Boot写后感【从零开始学Spring Boot】

从2016年4月15日到2016年7月20日经历长达3个月的时间&#xff0c;【从零开始学习Spring Boot】系列就要告一段落了。国内的各种资源都比较乱或者是copy 来copy去的&#xff0c;错了也不加以修正下&#xff0c;导致通过百度找到的资源可能都是错误的&#xff0c;正是由于这么一种…

五角星

import turtle turtle.setup(600,400,0,0) turtle.bgcolor(red) turtle.color(yellow) turtle.fillcolor(yellow) turtle.begin_fill() for i in range(5):turtle.forward(200)turtle.right(144) turtle.end_fill()turtle.done()转载于:https://www.cnblogs.com/Paris-YY/p/900…

java customerservlet_顾客管理系统java+servlet

首先我先搭好网页的框架先写一个登陆的html&#xff0c;名字是login.html1)在js中跳转页面的方法&#xff0c;我这里用的是get提交&#xff0c;只传递了一个name。function mylogin() {var usernamedocument.getElementById("name").value;window.location.href"…

php输出数据过大,PHPExcel导出数据量过大处理

转&#xff1a;ASP&period;NET MVC3 Model验证总结http://www.wyjexplorer.cn/Post/2012/8/3/model-validation-in-aspnet-mvc3 ASP.NET MVC3中的Model是自验证的,这是通 ...C&plus;&plus; 我想这样用(六)嗯,上一篇已经介绍了面向过程编程的语法知识,接下来是最后的…

计算球面上经纬度坐标方法比较

计算球面上的两点(坐标为经纬度)之间的距离可以直接通过公式计算得到&#xff0c;也可以先将经纬度坐标转化为墨卡托投影坐标来,然后用平面中两点之间的距离公式来计算。 在网上找了一些代码&#xff0c;然后简单进行了测试&#xff0c;发现前者精度更高&#xff1a; 资料来源&…

mysql给root开启远程访问权限,修改root密码

1.MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架构来说是没有问题的. 但随着网站流量的增加, 后期服务器架构可能会将 Web-Server 与 MySql-Server 分别放在独立的服务器上, 以便得…

Docker - Docker中搭建MySQL主从

1.pull完centos7纯净版的镜像后&#xff0c;创建容器&#xff0c;然后将宿主机上下载的MySQL文件 (MySQL下载地址&#xff1a;http://mysql.mirror.kangaroot.net/Downloads/) 拷贝到Docker容器中。 1) 抓取centos7纯净版镜像# docker pull registry.cn-hangzhou.aliyuncs.com/…

java 上传远程图片,java上传图片到另一台服务器上,怎么解决

Java codepublic String upload(String dir, FormFile formFile) throws Exception {Date date new Date();//取欲上传的文件的名字和长度String fname formFile.getFileName();//将上传时间加入文件名int i fname.indexOf(".");String name String.valueOf(date…

Qt_Window@Qt Command Prompt从命令行创建工程

#include <QApplication> #include <QLabel>int main(int argc, char *argv[]) {QApplication app(argc, argv);QLabel *label new QLabel("Hello Qt!");label->show();return app.exec(); }第1 行和第2 行包含了两个类的定义&#xff1a;QApplicat…