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