URAL 1416 Confidentia [次小生成树]
题意:
第一行n m代表n个点m条无向边。
接下来m行每行abc,代表ab之间有一条长度为c的无向边。
求:
最小生成树的边权和 次小生成树的边权和
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<math.h>
#define INF 0x3f3f3f3f
using namespace std;
int pho[][],n,total,dis[],from[],dp[][];
bool vis[];
void prim(int pos){
vis[pos]=;
for(int i=;i<=n;i++){
if(dis[i]>pho[pos][i]){
dis[i]=pho[pos][i];
from[i]=pos;
}
}
int mmin=INF,next=-;
for(int i=;i<=n;i++){
if(vis[i]==&&mmin>dis[i]){
mmin=dis[i];
next=i;
}
}
if(next>){
for(int i=;i<=n;i++){
if(vis[i]){
dp[i][next]=max(dp[i][from[next]],mmin);
}
}
pho[from[next]][next]=INF;
pho[next][from[next]]=INF;
total+=mmin;
prim(next);
}
}
int main()
{
int m;
scanf("%d%d",&n,&m);
memset(pho,0x3f,sizeof(pho));
memset(dis,0x3f,sizeof(dis));
for(int i=;i<m;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
pho[a][b]=c;pho[b][a]=c;
}
prim();
printf("Cost: %d\n",total);
bool ok=;
int tans=INF;
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(pho[i][j]!=INF){
ok=;
tans=min(tans,total-max(dp[i][j],dp[j][i])+pho[i][j]);
}
}
}
if(ok==)tans=-;
printf("Cost: %d\n",tans);
}
URAL 1416 Confidentia [次小生成树]的更多相关文章
- URAL 1416 Confidential(次小生成树)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1416 Zaphod Beeblebrox — President of the Impe ...
- URAL 1416 Confidential --最小生成树与次小生成树
题意:求一幅无向图的最小生成树与最小生成树,不存在输出-1 解法:用Kruskal求最小生成树,标记用过的边.求次小生成树时,依次枚举用过的边,将其去除后再求最小生成树,得出所有情况下的最小的生成树就 ...
- URAL 1416 Confidential (最小生成树+次小生成树)
Description Zaphod Beeblebrox - President of the Imperial Galactic Government. And by chance he is a ...
- kuangbin带你飞 生成树专题 : 次小生成树; 最小树形图;生成树计数
第一个部分 前4题 次小生成树 算法:首先如果生成了最小生成树,那么这些树上的所有的边都进行标记.标记为树边. 接下来进行枚举,枚举任意一条不在MST上的边,如果加入这条边,那么肯定会在这棵树上形成一 ...
- HDU 4081Qin Shi Huang's National Road System(次小生成树)
题目大意: 有n个城市,秦始皇要修用n-1条路把它们连起来,要求从任一点出发,都可以到达其它的任意点.秦始皇希望这所有n-1条路长度之和最短.然后徐福突然有冒出来,说是他有魔法,可以不用人力.财力就变 ...
- POJ1679 The Unique MST[次小生成树]
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28673 Accepted: 10239 ...
- The Unique MST(次小生成树)
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22335 Accepted: 7922 Description Give ...
- POJ1679The Unique MST(次小生成树)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25203 Accepted: 8995 D ...
- [kuangbin带你飞]专题八 生成树 - 次小生成树部分
百度了好多自学到了次小生成树 理解后其实也很简单 求最小生成树的办法目前遇到了两种 1 prim 记录下两点之间连线中的最长段 F[i][k] 之后枚举两点 若两点之间存在没有在最小生成树中的边 那么 ...
随机推荐
- Deferred和Promise之间有什么区别呢?
一个promise就是一个由异步函数返回的对象. deferred对象就是jQuery的回调函数解决方案. 总结 jQuery 的ajax 就是返回一个promise 对象,里面含有done(), f ...
- Angular学习(8)- 路由
示例: <!DOCTYPE html> <html ng-app="MyApp"> <head> <title>Study 12&l ...
- RDP setting group policy
RDP setting group policy 1.Login to domain controller and go to Group Policy Management tool2.Click ...
- Centos7和win7双系统调整默认启动
centos7之后都上grub2了,所以你要更改默认启动项什么的就不能像以前一样去改 /etc/grub.conf 当然你更不能去改/etc/grub2.conf 上了grub2之后,在设计有意规避让 ...
- liveusb-creator
liveusb-creator The liveusb-creator is a cross-platform tool for easily installing live operating sy ...
- 判断是否含有中文,包含返回true,不包含返回false
/** * 功能:判断是否含有中文,包含返回true,不包含返回false */ function isChina(s) { var patrn = /[\u4E00-\u9FA5]|[\uFE30- ...
- 我的Android最佳实践之—— Android更新UI的两种方法:handler与runOnUiThread()
在Android开发过程中,常需要更新界面的UI.而更新UI是要主线程来更新的,即UI线程更新.如果在主线线程之外的线程中直接更新页面 显示常会报错.抛出异常:android.view.ViewRoo ...
- [CSS]当选择器没有指定元素时
当选择器没有指定元素时,样式会作用于(匹配)所有html元素. 如下面代码: <!DOCTYPE html> <html> <head> <style> ...
- SOA_Oracle SOA Suite and BPM Suite 11g官方虚拟机安装指南(案例)
参考:Oracle官方 - http://www.oracle.com/technetwork/middleware/soasuite/learnmore/vmsoa-172279.html?ssSo ...
- WLS_Oracle Weblogic安装和环境搭建(案例)
2014-01-03 Created By BaoXinjian