#include<stdio.h>

#include<string.h>

#include<queue>

#include<iostream>

using namespace std;

#define inf 1000000000

#define N 110000

struct node {

int u,v,w,next;

}bian[N*2];

int head[N],yong,mindistance[N],n,visit[N],countt[N];

void addedge(int u,int v,int w) {

bian[yong].u=u;

bian[yong].v=v;

bian[yong].w=w;

bian[yong].next=head[u];

head[u]=yong++;

}

void min_spfa(int cur) { 

  int i;

  for(i=0;i<=n;i++) {

  mindistance[i]=inf;

  visit[i]=0;

  countt[i]=0;//原来在c++中的某些关键字不能乱用比如说count之类

  }

  visit[cur]=1;

  queue<int>q;

  q.push(cur);

  mindistance[cur]=0;

  while(!q.empty()) {

   cur=q.front();

  q.pop();

  for(i=head[cur];i!=-1;i=bian[i].next) {

  int v=bian[i].v;

  if(mindistance[v]>mindistance[cur]+bian[i].w) {

  mindistance[v]=mindistance[cur]+bian[i].w;

  if(!visit[v]) {

  if(++countt[v]>n)

 return ;

visit[v]=1; 

 q.push(v);

  }

  }

  }

  visit[cur]=0;

  }

  return ;

}

int main() {

      int i,a,b,c,dis[N],sum,minsum;

 while(scanf("%d",&n)!=EOF) {

   yong=0;

memset(head,-1,sizeof(head));

for(i=0;i<=n;i++)

scanf("%d",&dis[i]);

sum=0;

for(i=0;i<n;i++) {

scanf("%d%d%d",&a,&b,&c);

addedge(a,b,c);

addedge(b,a,c);

sum=sum+c*2;

}

 min_spfa(0);

 minsum=sum+dis[0];

 for(i=1;i<=n;i++) {

 if(minsum>sum-mindistance[i]+dis[i])

 minsum=sum-mindistance[i]+dis[i];

 }

 printf("%d\n",minsum);

 }

return 0;

}

最新文章

  1. Nexus Repository Manager 3.0 发布
  2. git撤销命令
  3. Mongodb shell 基本操作
  4. Android zxing连续扫描
  5. 20160506-hibernate入门
  6. PHP、JSP、.NET各自的真正优势是什么
  7. iOS View的Frame和bounds之区别,setbounds使用(深入探究)
  8. hash练习
  9. angular2 学习笔记 ( Form 表单 )
  10. 文成小盆友python-num5 -装饰器回顾,模块,字符串格式化
  11. Vue 项目代理设置的优化
  12. ●洛谷P2934 [USACO09JAN]安全出行Safe Travel
  13. python提取网页表格并保存为csv
  14. Java线程的创建及启动
  15. linux redis服务安装
  16. bzoj4948: World Final2017 A
  17. zabbix 自定义监控 排除带报错提示
  18. 添加额外的源, 使得yum可以安装更多的软件
  19. Springmvc Exception
  20. C# TinyMapper

热门文章

  1. Datatable转换为Json 的方法
  2. PCB Winform中的WebBrowser扩展拖放(拖拽)功能 实现方法
  3. cookie应用(一周内免登陆)
  4. [Swift通天遁地]五、高级扩展-(7)UIView(视图类型)的各种扩展方法
  5. 浅析SpringDataJpa继承结构
  6. mahjong
  7. ANDROID 开发之 SQLite
  8. C/C++ Python的函数默认参数
  9. 无法定位程序输入点_except_handler4_common于动态链接库msvcrt.dll
  10. CSS3悬浮动画效果