以每个节点为起点,求到根节点的最短路,所有  最短路*权值 加起来即为结果。

解释如图

实现用迪杰斯特拉 算法

代码:

#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int w[50001];
struct node{int v;int w;node(int _v,int _w){v=_v;w=_w;}
};
vector<node>G[50001];
void insert1(int i,int j,int w)
{G[i].push_back(node(j,w));
}
void insert2(int i,int j,int w)
{insert1(i,j,w);insert1(j,i,w);
}
int n,m;
void input()
{cin>>n>>m;for(int i=1;i<=n;i++){cin>>w[i];}int a,b,c;for(int i=1;i<=m;i++){cin>>a>>b>>c;insert2(a,b,c);}
}
int dis[50001];
bool vis[50001];
void dij(int u)
{memset(dis,0x3f,sizeof(dis));memset(vis,false,sizeof(vis));dis[u]=0;for(int i=0;i<n;i++){int mindis=0x3f-1;int minj=-1;for(int j=1;j<=n;j++){if(!vis[j]&&dis[j]<mindis){mindis=dis[j];minj=j;}}if(minj==-1)return;vis[minj]=true;for(int j=0;j<G[minj].size();j++){int v=G[minj][j].v;int w=G[minj][j].w;if(!vis[j]&&dis[minj]+w<dis[v]){dis[v]=dis[minj]+w;}}}
}
int main()
{input(); int res=0;for(int i=2;i<=n;i++){dij(i);res+=w[i]*dis[1];}cout<<res;
}

【最短路径问题】计蒜客:圣诞树相关推荐

  1. 计蒜客题解——T1214:鸣人和佐助

    题目相关 题目链接 计蒜客 OJ,https://nanti.jisuanke.com/t/T1214. 题目描述 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到 ...

  2. 计蒜客题解——T1213:拯救行动

    题目相关 题目链接 计蒜客 OJ,https://nanti.jisuanke.com/t/T1213. 题目描述 公主被恶人抓走,被关押在牢房的某个地方.牢房用 N×M(N,M≤200) 的矩阵来表 ...

  3. 计蒜客 挑战难题 爬楼梯

    计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...

  4. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  5. 最短路(遍历边)计蒜客—DD坐地铁

    题目: C 城有 n 个站点, m 条双向地铁,每条地铁有一个 companyicompany_icompanyi​表示它的公司,如果连续乘坐同一家公司的地铁只要花 1元钱就好.DD现在想出门找萨摩耶 ...

  6. K - Triangle 计蒜客 - 42405

    K - Triangle 计蒜客 - 42405 题意: 给你一个三角形的三点,再给你三角形边上一个点,让你求另一个点(也要在三角形上),使得平分三角形的面积 题解: 计算几何 三角形的三边ab,ac ...

  7. H - Prince and Princess 计蒜客 - 42402

    H - Prince and Princess 计蒜客 - 42402 题意: 你现在要寻找公主,有三种人,第一种是说真话的人(至少为1,因为公主是说真话的人),第二种人是只会说假话的,第三种是胡说八 ...

  8. C - Digital Path 计蒜客 - 42397 05-29

    C - Digital Path 计蒜客 - 42397 题意: 题意就是给出一个n ∗ m的数字矩阵每个矩阵元素之间只能上下左右走,而且下一个位置必须比当前位置的数字大1,入口和出口必须数边缘元素, ...

  9. 计蒜客可以做计算机编程吗,如果你的编程能力不足以支撑你成为工程师的野心,不妨到计蒜客上学学看...

    在人才招聘领域存在这样一个怪圈,高校每年都说是最难就业年.人才过剩,而对于企业HR来说永远都招不到称心如意的人才.这个怪圈在"计蒜客"创始人俞昊然看来,主要是因为当今高校的教学资源 ...

  10. 计蒜客 - T1012 A*B问题

    计蒜客 - T1012 A*B问题 相信你已经学会 A+B 问题了,那么问题又来了- 输入两个正整数 A 和 B ,求 A×B. 输入格式 一行,包含两个正整数 A 和 B,中间用单个空格隔开. 1≤ ...

最新文章

  1. [转载].怎样在有限状态机中延时
  2. java toolkit invoker_关于invokeInitFramework 方法未实现的问题
  3. 华为服务器高端系列,国产高端服务器 首选款华为RH2485 V2
  4. 直击WinRoute
  5. 第41天:匀速、缓动运动和图片无缝滚动
  6. 用命令行批处理bat,设置代理服务器、DNS、网关、WINS等
  7. Spring Boot (一)快速入门
  8. MYSQL 常用命令大全整理
  9. 长视频鏖战15年后 爱奇艺这份财报窥见“新蓝海“
  10. 服务器虚拟化技术有kvm,只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术
  11. JAVA程序运行原理——知其然,而知其所以然
  12. 期权、期货及其他衍生产品 第二章读书笔记 期货市场的运行机制
  13. spring boot社区疫苗接种管理系统毕业设计源码281442
  14. hbuilder+dcloud开发APP
  15. hdmi怎么支持2k分辨率_官方确认!PS5将不支持原生2K分辨率,双11次世代设备升级注意排雷...
  16. JS_实现图片的自动轮播
  17. 网络互联技术(1)——前篇—【转载】计算机发展史
  18. (转载)验证下载下来的文件的完整性的方法
  19. dpi和ppi换算_八一八那些px、pt、ppi、dpi、dp、sp之间的关系
  20. 九、快速入门高等数学的导数和微积分篇

热门文章

  1. C#编程总结(四)多线程应用
  2. CCF202012-5 星际旅行【线段树】(100分题解链接)
  3. UVA11532 Simple Adjacency Maximization【位运算】
  4. Bailian4030 统计单词数【文本处理】
  5. 51NOD-1029 大数除法【大数】
  6. POJ1664 放苹果【递推+记忆化递归】
  7. 红黑树相关定理及其证明
  8. 概率论(基本概念术语)的理解
  9. 【剑指 offer】(二十三)—— 从上往下打印二叉树(或曰层次遍历、广度优先遍历)
  10. 机器学习基础(四十二)—— 常用损失函数的设计(multiclass SVM loss hinge loss)