模板题

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <stack>
#include <queue>
#include <cmath>
#include <vector>
using namespace std;
const int N=;
const int INF=0x3f3f3f3f;
int fa[N],head[N],tot,T,n,m,d[N][N];
struct Edge{
int v,next,w;
}edge[N<<];
void add(int u,int v,int w){
edge[tot].v=v;
edge[tot].w=w;
edge[tot].next=head[u];
head[u]=tot++;
}
struct Node{
int u,v,w;
bool mark;
bool operator<(const Node &rhs)const{
return w<rhs.w;
}
}p[N<<];
int find(int x){
return x==fa[x]?x:fa[x]=find(fa[x]);
}
int s;
void dfs(int u,int f,int t){
d[s][u]=t;
for(int i=head[u];~i;i=edge[i].next){
int v=edge[i].v;
if(v==f)continue;
dfs(v,u,max(t,edge[i].w));
}
}
int main()
{
int cas=;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
tot=;
printf("Case #%d : ",++cas);
memset(d,,sizeof(d));
for(int i=;i<=n;++i)fa[i]=i,head[i]=-;
for(int i=;i<=m;++i){
scanf("%d%d%d",&p[i].u,&p[i].v,&p[i].w);
p[i].mark=;
}
sort(p+,p++m);
int tmp=n;
int mst=,ans=INF;
for(int i=;i<=m;++i){
int u=find(p[i].u),v=find(p[i].v);
if(u!=v){
--tmp;
fa[u]=v;
mst+=p[i].w;
p[i].mark=;
add(p[i].u,p[i].v,p[i].w);
add(p[i].v,p[i].u,p[i].w);
if(tmp==)break;
}
}
if(tmp>){
printf("No way\n");
continue;
}
for(int i=;i<=n;++i){
s=i;dfs(i,,);
}
for(int i=;i<=m;++i){
if(p[i].mark)continue;
ans=min(ans,mst-d[p[i].u][p[i].v]+p[i].w);
}
if(ans==INF)printf("No second way\n");
else printf("%d\n",ans);
}
return ;
}

最新文章

  1. 检查Chunksum与Chunk Data之间的缓冲区发送到DataNode节点
  2. 【转】PHP计划任务:如何使用Linux的Crontab执行PHP脚本
  3. mysql 5.7.15发布
  4. php中soap的使用实例以及生成WSDL文件,提供自动生成WSDL文件的类库——SoapDiscovery.class.php类
  5. Swift 2.0基本语法
  6. 如何使一个input文本框随其中内容而变化长度(转)
  7. [ES6] 20. Polyfills
  8. DataSource
  9. CSS知识总结之设计模式(持续学习中)
  10. Oracle Rac创建表空间及用户
  11. 新人大餐:2018最新Office插件开发之ExcelDNA开发XLL插件免费教学视频,五分钟包教包会
  12. 《笨方法学Python》加分题6
  13. C# sapnco支持.net 4.5了,真是个意外的发现
  14. mysql 通过查看mysql 配置参数、状态来优化你的mysql
  15. tp框架中的一些疑点知识-1
  16. 前端框架之Vue.js
  17. django的forms
  18. HTML meta标签总结,HTML5 head meta属性整理
  19. Xpath语法与lxml库的用法
  20. PTA (Advanced Level) 1040 Longest Symmetric String

热门文章

  1. python学习笔记17(动态类型)
  2. 《Head First HTML&amp;CSS》笔记
  3. Delphi XE5 android listview
  4. js常识
  5. spoj 379
  6. EasyUI combotree值的设置 setValue
  7. jmeter HTTP信息头管理器使用一例
  8. C语言 结构体的内存对齐问题与位域
  9. MVC @Html.DropDownListFor 默认值
  10. ANDROID_MARS学习笔记_S01_011ProgressBar