Alice拜年 模板题 /// 最短路Dijk oj1344
题目大意:
大年初一,Alice带上拜年礼物去给N-1位亲朋好友长辈拜年,亲友真多啊,是个大家族。由于Alice才2岁,力气不大,每次只能拿一份礼物,拜完年之后,要回家取第二份礼物,然后去下一家拜年(无语了)。为了表示对亲朋长辈的尊敬,Alice每次都从家步行去到对方家里,拜完年由爸爸骑自行车带回家(彻底无语)。可怜天下父母心啊,爸爸全程陪着Alice折腾。
假设Alice的住址编号为1,各亲朋好友的家分别编号为 2 ~ N 。这个城市的道路都是单向的(别惊奇,这个世界无奇不有),共有M条道路,每条道路长短不一。求Alice给这 N-1 个家庭拜完年,最少步行了多少路程?
输入的第一行是两个整数 N 和 M,1 ≤ N ≤ 1000, 1 ≤ M ≤ 100000
接下来M行,每行3个正整数 U ,V ,W ,表示该条道路是从节点U到节点V的,这条道路共有W米。满足 1 ≤ U, V ≤ N , 1 ≤ W ≤ 10000 ,保证任意两点都能互相到达。
注意本题有重边。
输出一行,包含一个整数,为Alice最少步行的路程。
5 10
2 3 5
1 5 5
3 5 6
1 2 8
1 3 8
5 3 4
4 1 8
4 5 3
3 5 6
5 4 2
28
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int n,m,a[][];
int dis[],flag[];
void dijk()
{
for(int i=;i<n;i++)
{
int mini=INF,u;
for(int j=;j<=n;j++)
if(!flag[j]&&dis[j]<mini)
{
mini=dis[j];
u=j;
}
if(mini==INF) break;
flag[u]=;
for(int j=;j<=n;j++)
if(dis[j]>dis[u]+a[u][j]&&!flag[j]&&a[u][j]<INF)
dis[j]=dis[u]+a[u][j];
}
}
int main()
{
scanf("%d%d",&n,&m);
int u,v,w,sum=;
memset(a,INF,sizeof(a));
memset(flag,,sizeof(flag));
memset(dis,INF,sizeof(dis));
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&u,&v,&w);
a[u][v]=min(w,a[u][v]); /// 有重边 取小
}
for(int i=;i<=n;i++)
dis[i]=a[][i]; /// dis[i]=a[起点][i]
dis[]=;
flag[]=;
dijk();
for(int i=;i<=n;i++)
sum+=dis[i];
printf("%d",sum); return ;
}
Dijkstra求最短路+输出路径 模板 http://www.cnblogs.com/Rubbishes/p/7687600.html
Alice拜年 模板题 /// 最短路Dijk oj1344的更多相关文章
- poj1511/zoj2008 Invitation Cards(最短路模板题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Invitation Cards Time Limit: 5 Seconds ...
- HDU 2544 最短路(模板题——Floyd算法)
题目: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你 ...
- HDU 5521.Meeting 最短路模板题
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- [poj2449]Remmarguts' Date(K短路模板题,A*算法)
解题关键:k短路模板题,A*算法解决. #include<cstdio> #include<cstring> #include<algorithm> #includ ...
- [USACO07FEB]银牛派对Silver Cow Party---最短路模板题
银牛排队 对于我这种蒟蒻来说,还是不要跑一次单元最短路.跑两次好写呀(- ̄▽ ̄)- 而题目中是有向图.如果如果按照题意进行最短路的话.就会出现一个单终点最短路和一个单起点最短路 对于单起点自然就是套模 ...
- 牛客小白月赛6 I 公交线路 最短路 模板题
链接:https://www.nowcoder.com/acm/contest/136/I来源:牛客网 题目描述 P市有n个公交站,之间连接着m条道路.P市计划新开设一条公交线路,该线路从城市的东站( ...
- HDU-2544 最短路 Dijkstra模板题
题目链接:https://vjudge.net/problem/HDU-2544 题意: 题目要求找到节点1到节点n之间的一条最短路 分析: Dijkstra模板题 单源最短路径,可以用dijkstr ...
- HDU 2544 最短路 【Dijkstra模板题】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路:最短路的模板题 Dijkstra 算法是一种类似于贪心的算法,步骤如下: 1.当到一个点时, ...
- POJ 2387 Til the Cows Come Home --最短路模板题
Dijkstra模板题,也可以用Floyd算法. 关于Dijkstra算法有两种写法,只有一点细节不同,思想是一样的. 写法1: #include <iostream> #include ...
随机推荐
- thinkphp+layui多图上传(1)thinkphp5+layui实现多图上传保存到数据库,可以实现图片自由排序,自由删除。
公共css代码 <style> .layui-upload-img { width: 90px; height: 90px; margin: 0; } .pic-more { width: ...
- System.getenv()和System.getProperty()
System.getenv() 方法是获取指定的环境变量的值. System.getenv(String str) 接收参数为任意字符串,当存在指定环境变量时即返回环境变量的值,否则返回null. S ...
- inode缓存与dentry缓存
1. inode缓存 1: struct inode { 2: /* RCU path lookup touches following: */ 3: umode_t i_mode; 4: uid_t ...
- 2019牛客多校第三场F-Planting Trees(单调队列)
Planting Trees 题目传送门 解题思路 枚举每一个下边界,再枚举其对应的所有上边界,求出其对应区间内的最大最小值,当下边界一样的时候,其最大最小值可以随着上边界减小逐步更新.然后将这些最大 ...
- C#获取系统服务+进程+启动时间
原文:C#获取系统服务+进程+启动时间 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/weixin_38208401/article/details ...
- (Struts2学习系列四)Struts2指定配置文件
我们的每个action都在struts.xml里配置的话,就会出现很多的xml语句,单单一个struts.xml就会变得很大,所以我们会在struts.xml里使用include引入其他的.xml文件 ...
- zless - 用于在显示器上阅读被压缩的文本文件的过滤器
总览 (SYNOPSIS) zless [ name ... ] 描述 (DESCRIPTION) Zless 是一个文件过滤器, 用于在终端上全屏幕形式查看压缩的或没压缩的文本文件. 它等于把环境变 ...
- UNLISTEN - 停止监听通知信息
SYNOPSIS UNLISTEN { name | * } DESCRIPTION 描述 UNLISTEN 用于删除一个现有的已注册的 NOTIFY 事件. UNLISTEN 取消当前 Postgr ...
- (PASS)java中打印当月的日历的每一天
package test; import java.time.DayOfWeek; import java.time.LocalDate; /** * * @ClassName: Calendar ...
- Tools: java安装指南
参考: https://www.cnblogs.com/smyhvae/p/3788534.htmljava安装 (1)新建->变量名"JAVA_HOME",变量值" ...