UESTC 30.最短路-最短路(Floyd or Spfa(链式前向星存图))
最短路
Time Limit: 3000/1000MS (Java/Others)
Memory Limit: 65535/65535KB (Java/Others)
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的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 |
题意好理解,就是最短路。
最短路。。。传送门http://developer.51cto.com/art/201403/433874.htm
打训练赛的时候这个题wa了7次,最后也没写对,也是没谁了(;´д`)ゞ
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=+;
const int INF=0x3f3f3f3f;
typedef long long ll;
int hh[N][N];
int n,m;
int gg(){ //关键
for(int h=;h<=n;h++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++) //这里当时写错了,j<=n写成j<=m了。。。
hh[i][j]=min(hh[i][j],hh[i][h]+hh[h][j]);
}
int main(){
int h,k,l;
while(~scanf("%d%d",&n,&m)&&(n||m)){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
hh[i][j]=INF;
for(int i=;i<m;i++){
scanf("%d%d%d",&h,&k,&l);
if(l<hh[h][k])
hh[h][k]=hh[k][h]=l;
}
gg();
printf("%d\n",hh[][n]);
}
return ;
}
啊啊啊啊啊啊啊,还有一个思路可以写,spfa算法+链式前向星建图
然而,前向星有的看懂了,有的还很(O_O)?传送门http://www.cnblogs.com/Tovi/p/6194786.html
人家的代码,传送门http://blog.csdn.net/lvshubao1314/article/details/23034601
代码:
#include<string.h>
#include<stdio.h>
#include<iostream>
#include<queue>
using namespace std;
const int maxn=1e5+;
const int INF=1e9;
struct node{
int b,w,next;
};
node edge[maxn];
int s,n,ip;
int head[maxn],que[maxn],visit[maxn],dis[maxn];
void add(int u,int v,int c){
edge[ip].b=v;edge[ip].w=c;edge[ip].next=head[u];head[u]=ip++;
}
void spfa(int start,int numpoint){
memset(visit,,sizeof(visit));
for(int i=;i<=numpoint;i++)
dis[i]=INF;
int front=-,tail=-;
dis[start]=;visit[start]=;que[++tail]=start;
int top,to,temp;
while(front!=tail){
if(++front>numpoint)front-=numpoint;
top=que[front];visit[top]=;
for(int p=head[top];p!=-;p=edge[p].next){
to=edge[p].b;temp=dis[top]+edge[p].w;
if(dis[to]>temp){
dis[to]=temp;
if(!visit[to]){
if(++tail>numpoint)tail-=numpoint;
que[tail]=to;
visit[to]=;
}
}
}
}
}
int main(){
int b,w,m,k;
while(~scanf("%d%d",&n,&m)){
if(m==&&n==)break;
int maxx=-;
memset(head,-,sizeof(head));
ip=;
for(int i=;i<=m;i++){
cin>>k>>b>>w;
if(k>maxx)maxx=k;
if(b>maxx)maxx=b;
add(k,b,w);
add(b,k,w);
}
spfa(,maxx);
printf("%d\n",dis[n]);
}
return ;
}
菜的掉渣,继续努力TAT
UESTC 30.最短路-最短路(Floyd or Spfa(链式前向星存图))的更多相关文章
- 最短路 spfa 算法 && 链式前向星存图
推荐博客 https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/deta ...
- UESTC30-最短路-Floyd最短路、spfa+链式前向星建图
最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...
- 【最短路】Dijkstra+ 链式前向星+ 堆优化(优先队列)
Dijkstra+ 链式前向星+ 优先队列 Dijkstra算法 Dijkstra最短路算法,个人理解其本质就是一种广度优先搜索.先将所有点的最短距离Dis[ ]都刷新成∞(涂成黑色),然后从起点 ...
- HDU 2544最短路 【dijkstra 链式前向星+优先队列优化】
最开始学最短路的时候只会用map二维数组存图,那个时候还不知道这就是矩阵存图,也不懂得效率怎么样 经过几个月的历练再回头看最短路的题, 发现图可以用链式前向星来存, 链式前向星的效率是比较高的.对于查 ...
- SPFA_queue_链式前向星最短路 & HDU2433
题目大意:看完之后,觉得不肯能让我暴力,比较好想的就是初始化——每个点都求个最短路spfa,sum数组记录每个点到各个点的最短路之和,ans作为总和,之后一一删除边u-v,求关于u的最短路,如果dis ...
- Floyd && Dijkstra +邻接表 +链式前向星(真题讲解来源:城市路)
1381:城市路(Dijkstra) 时间限制: 1000 ms 内存限制: 65536 KB提交数: 4066 通过数: 1163 [题目描述] 罗老师被邀请参加一个舞会,是 ...
- [板子]SPFA算法+链式前向星实现最短路及负权最短路
参考:https://blog.csdn.net/xunalove/article/details/70045815 有关SPFA的介绍就掠过了吧,不是很赞同一些博主说是国内某人最先提出来,Bellm ...
- 链式前向星实现的堆优化dij求最短路模板
#include<cstdio> #include<string> #include<cstdlib> #include<cmath> #include ...
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
随机推荐
- Chrome Extension & Dark Theme
Chrome Extension & Dark Theme https://chrome.google.com/webstore/detail/eimadpbcbfnmbkopoojfekhn ...
- 机器学习模型-支持向量机(SVM)
二.代码实现 import numpy as np from sklearn import datasets from sklearn.model_selection import train_tes ...
- 做一个所见即所得的CSS效果
style 也是标签(在非ie内核的浏览器中支持),我们将style设置成 contenteditable的时候,那么那的内容就可以编辑了.仔细的体验下,如果我们将背景修改成红色的.那么只要书写完,立 ...
- ServletContext 接口读取配置文件要注意的路径问题
在建立一个maven项目时,我们通常把一些文件直接放在resource下面,在ServletContext中有getResource(String path)和getResourceAsStream( ...
- CRM系统主要业务流程思维导图
[CRM五策略] ❶对客户进行分类,不是根据规模,而是根据和你的关系,越细腻越好: ❷不定期更新客户资料,信息越全面越好: ❸主动对客户进行 ...
- 图论:费用流-SPFA+EK
利用SPFA+EK算法解决费用流问题 例题不够裸,但是还是很有说服力的,这里以Codevs1227的方格取数2为例子来介绍费用流问题 这个题难点在建图上,我感觉以后还要把网络流建模想明白才能下手去做这 ...
- TensorFlow_曲线拟合
# coding:utf-8 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import os ...
- Windows 的GUID
GUID(全称:Globally Unique Identifier),是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系统中.在理想情况下,任何 ...
- linux下检测可用串口并使用minicom打开(改进版)
之前使用的方式是这样的 http://www.cnblogs.com/zqb-all/p/7073612.html 这两天看到minicom的参数,可以直接使用 -D 指定设备,于是修改成了这样 建立 ...
- I2C和SPI总线对比【转】
转自:http://blog.csdn.net/skyflying2012/article/details/8237881/ 最近2周一直在调试IIC和SPI总线设备,这里记录一下2种总线,以备后忘. ...