hdu-2544 最短路(SPFA)
SPFA整体过程
1.用一个队列queue支撑。
2.dis[i]表示目前x到i的距离。
3.b[i]表示i是否在q中。
4.清空队列while(q.size()) q.pop();。
5.初始化(把所有的dis[i]设为INF,再把dis[x]设为0,因为x到x的距离是0)。
6.把当先点入队q.push(x);。
7.取出队首,存在temp中,b[队首] = false。
8.更新每一个点(dis[j] = min(dis[temp] + mp[temp][j],dis[j]);)。
9.如果它没有在q中则把它入队,并把b[i]标记成true。
10.如果队列不空则继续第7步。
code
#include <iostream>
#include <queue>
using namespace std;
#define inf 0x3f3f3f3f
int mp[105][105], dis[105], vis[105], num[105], n, m;
queue<int> q;
void SPFA(int x) {
while(q.size()) q.pop();//4
for (int i = 1; i <= n; i++) {//5
dis[i] = inf;
}
dis[x] = 0;
q.push(x);//6
while (!q.empty()) {
int temp = q.front();//7
q.pop();
for (int j = 1; j <= n; j++) {//8
if (dis[j] > mp[temp][j] + dis[temp]) {
dis[j] = dis[temp] + mp[temp][j];
if (!vis[j]) {//9
q.push(j);
vis[j] = 1;
num[j]++;
}
}
}
vis[temp] = 0;
}//10
}
int main() {
while (cin >> n >> m && n + m) {
int a, b, c;
for (int i = 1; i <= n; i++) {/赋予INF
for (int j = 1; j <= n; j++) {
if (i == j) {、、特判
mp[i][j] = 0;
} else {
mp[i][j] = inf;
}
}
}
for (int i = 1; i <= m; i++) {
cin >> a >> b >> c;
if (mp[a][b] > c) {
//无向图
mp[a][b] = mp[b][a] = c;
//有向图
//mp[a][b] = c;
}
}
SPFA(1);
cout << dis[n] << endl;
}
return 0;
}
完结散花!
hdu-2544 最短路(SPFA)的更多相关文章
- hdu 2544 最短路 (spfa)
最短路 Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- HDU 2544 最短路 SPFA 邻接表 模板
Problem Description 在每年的校赛里,全部进入决赛的同学都会获得一件非常美丽的t-shirt.可是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以如今他们想 ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU - 2544最短路 (dijkstra算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- hdu 2544 最短路
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shi ...
- HDU 2544最短路 (迪杰斯特拉算法)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Time Limit: 5000/1000 MS (Java/Others) Me ...
- (重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
floyd解法 今天初看dijkstra,先拿这两题练手,其他变形题还是不是很懂. 模版题,纯练打字... HDU 1874: #include <cstdio> #define MAXN ...
- HDU 2544 最短路(floyd+bellman-ford+spfa+dijkstra队列优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目大意:找点1到点n的最短路(无向图) 练一下最短路... dijkstra+队列优化: #i ...
- HDU 2544 最短路(初涉SPFA算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t ...
随机推荐
- week_2
Andrew Ng 机器学习笔记 ---by OrangeStar Week_2 1.Multiple Features 更有效的线性回归形式 此时,h函数已经不是二阶了. \[ X = \begin ...
- [生命科学] snapgene 构建载体方法分享
snapgene 构建载体方法分享 文章目录 snapgene 构建载体方法分享 1. Snapgene 构建载体-酶切位点法 2. 载体构建--同源重组法 3. 总结 1. Snapgene 构建载 ...
- (5)go-micro微服务domain层开发
目录 一 domain层介绍说明 二 model层开发 三 repository层开发 四 service层开发 五 最后 一 domain层介绍说明 domain层专注于数据库数据领域开发,我们把数 ...
- session取不到值
今天鼓捣项目时出现了一个问题 项目重启后,设置session值后,第一次请求经过过滤器时 session取不到值,导致被拦截 经过半天的研究,终于...我请教了别人 把代码给了朋友,在朋友一段时间的琢 ...
- 我们来汉化IntelliJ IDEA
(原发于 GitHub Pages,2018-10-13 13:51:09) 两年前我从一名光荣的C++程序员专业为PHP程序员以后,告别了世界第一IDE Visual Studio,改用当时觉得特别 ...
- 【Django drf】 序列化类常用字段类和字段参数 定制序列化字段的两种方式 关系表外键字段的反序列化保存 序列化类继承ModelSerializer 反序列化数据校验源码分析
目录 序列化类常用字段类和字段参数 常用字段类 常用字段参数 选项参数 通用参数 序列化类高级用法之source source填写类中字段 source填写模型类中方法 source支持跨表查询 定制 ...
- 使用gm/ID方法设计二级运算放大器
1 设计指标 运算放大器采用图1所示的电路结构,电路中的电流源均采用共源共栅结构,可以获得较高的共模抑制比和电流复制精度.其性能指标为增益带宽积GBW=100MHz,负载电容CL=2pF.本设计采用的 ...
- FalseSharing-伪共享
1.CPU缓存 要了解什么是伪共享,首先得了解CPU缓存架构与缓存行的知识 (1)<CPU缓存架构> 主内存RAM是数据存在的地方,CPU和主内存之间有好几级缓存,因为即使直接访问主内存相 ...
- 洛谷P3654 First Step题解
这是一道暴力枚举. 大致题意:R行C列的棋盘要放下长度为K的线段,"#"表示无法放置,问有多少种放置方法. 直接贴代码: #include<bits/stdc++.h> ...
- C艹 里 printf 和 cout 的区别总结
1. printf里面打出%需要连着打出两次 打出一次默认为格式标识符 打出两次: 2. 当 未完待续