最短路 Edit

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
Submit Status

在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的T-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?

Input

输入包括多组数据。

每组数据第一行是两个整数NN ,MM (N≤100N≤100 ,M≤10000M≤10000 ),NN 表示成都的大街上有几个路口,标号为11 的路口是商店所在地,标号为NN 的路口是赛场所在地,MM 则表示在成都有几条路。N=M=0N=M=0 表示输入结束。

接下来MM 行,每行包括33 个整数AA ,BB ,CC (1≤A1≤A ,B≤NB≤N ,1≤C≤10001≤C≤1000 ),表示在路口AA 与路口BB 之间有一条路,我们的工作人员需要CC 分钟的时间走过这条路。

输入保证至少存在11 条商店到赛场的路线。

Output

对于每组输入,输出一行,表示工作人员从商店走到赛场的最短时间。

Sample input and output

Sample Input Sample Output
2 1
1 2 3
3 3
1 2 5
2 3 5
3 1 2
0 0
3
2

Hint

Source

电子科技大学第六届ACM程序设计大赛 初赛
 
题意: 中文题意
 
题解:再来一遍SPFA  当队头节点now出队时 需要 used[now]=0;
 #include<bits/stdc++.h>
#define ll __int64
#define mod 1e9+7
#define PI acos(-1.0)
#define bug(x) printf("%%%%%%%%%%%%%",x);
#define inf 1e8
using namespace std;
int pre[];
int dis[];
int n,m;
int s,t,d;
int used[];
int now,zha;
int nedge=;
struct node
{
int pre;
int to;
int w;
}N[];
void add(int aa,int bb,int cc)
{
nedge++;
N[nedge].to=bb;
N[nedge].w=cc;
N[nedge].pre=pre[aa];
pre[aa]=nedge;
}
queue<int>q;
void spfa()
{
for(int i=;i<=n;i++)
{
dis[i]=inf;
used[i]=;
}
dis[]=;
q.push();
used[]=;
while(!q.empty())
{
now=q.front();
q.pop();
used[now]=;
for(int i=pre[now];i;i=N[i].pre)
{
if(dis[now]+N[i].w<dis[N[i].to])
{
dis[N[i].to]=dis[now]+N[i].w;
if(!used[N[i].to])
{
used[N[i].to]=;
q.push(N[i].to);
}
}
}
}
}
int main()
{
while(scanf("%d %d",&n,&m)&&n&&m)
{
nedge=;
memset(N,,sizeof(N));
memset(pre,,sizeof(pre));
memset(dis,,sizeof(dis));
for(int i=;i<=m;i++)
{
scanf("%d %d %d",&s,&t,&d);
add(s,t,d);
add(t,s,d);
}
spfa();
printf("%d\n",dis[n]);
}
return ;
}

最新文章

  1. Angularjs学习笔记9_JSON和JSONP
  2. Python学习一(面向对象和函数式编程)
  3. [LintCode] Permuation Index
  4. Android bindservice使用
  5. C#综合揭秘——细说多线程(上)
  6. Oracle一些常用的查询命令总结(持续更新)
  7. 修改placeholder颜色
  8. JavaEE Tutorials (25) - 使用Java EE拦截器
  9. MYSQL 中 LIMIT 用法
  10. 使用docker部署standalone cinder
  11. Java集合系列[2]----LinkedList源码分析
  12. shell脚本基础1 概述及变量
  13. Problem 10: Summation of primes
  14. 新闻思考-阿里进军游戏产业,苹果发力ARM芯片
  15. 019_删除链表的倒数第N个节点
  16. 自然周与自然月的Hive统计SQL
  17. Android控件第4类——ProgressBar
  18. QQ空间说说如何批量删除
  19. 【源码编译】spark源码编译
  20. Android逆向-java代码基础

热门文章

  1. CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第三节
  2. 操作表单 -------JavaScrip
  3. Win 无法安装 python 包
  4. 精读《sqorn 源码》
  5. 课时21.img标签(掌握)
  6. 用jq给img添加error事件
  7. SQL Server中的日期,时间组合查询
  8. 15.VUE学习之-表单中使用key唯一令牌解决表单值混乱问题
  9. 调用python-nmap实现扫描局域网存活主机
  10. Java堆内存又溢出了!教你一招必杀技