博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P3371 【模板】单源最短路径(弱化版) && dijkstra模板
阅读量:5325 次
发布时间:2019-06-14

本文共 1543 字,大约阅读时间需要 5 分钟。

嗯...

 

题目链接:https://www.luogu.org/problem/P3371

 

没什么好说的,这是一个最短路的模板,这里用的dijkstra做的...

 

注意:

1.dijkstra和邻接表一块有点别扭,但还是可以遍历的...

2.dis数组不能初始化为2147483647,而要初始化0x3f3f,最后判一下还是不是0x3f3f即可

 

AC代码:

1 #include
2 #include
3 #include
4 5 using namespace std; 6 const int maxn = 500005; 7 int n, m, tot, s; 8 long long inf = 0x3f3f; 9 int vis[maxn], dis[maxn], e[maxn];10 // vis -> 是否被访问过 dis -> 最短路 e -> 边的编号 11 struct node{12 int next, to, from, val;13 } g[maxn];14 15 inline void add(int u, int v, int w){16 g[++tot].from = u;17 g[tot].next = e[u];18 e[u] = tot;19 g[tot].to = v;20 g[tot].val = w;21 }//邻接表 22 23 inline void dijkstra(int x){24 memset(vis, 0, sizeof(vis));25 for(int i = 1; i <= n; i++) dis[i] = (i == x ? 0 : inf);//初始化 26 for(int i = 1; i <= n; i++){27 int t = 0, y = inf;28 for(int j = 1; j <= n; j++) if(!vis[j] && dis[j] <= y) y = dis[t = j];29 vis[t] = 1;30 for(int j = e[t]; j; j = g[j].next) dis[g[j].to] = min(dis[g[j].to], dis[t] + g[j].val);31 }//松弛操作 32 for(int i = 1; i <= n; i++) {
if(dis[i] == 0x3f3f) printf("2147483647 "); else printf("%d ", dis[i]);}33 }34 35 int main(){36 memset(dis, 0x3f3f, sizeof(dis));37 scanf("%d%d%d", &n, &m, &s);38 for(int i = 1; i <= m; i++){39 int u, v, w;40 scanf("%d%d%d", &u, &v, &w);41 add(u, v, w);//单向图 42 }43 dijkstra(s);44 return 0;45 }
AC代码

 

转载于:https://www.cnblogs.com/New-ljx/p/11256969.html

你可能感兴趣的文章
SOAP web service用AFNetWorking实现请求
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
集合的内置方法
查看>>
IOS Layer的使用
查看>>
Android SurfaceView实战 带你玩转flabby bird (上)
查看>>
Android中使用Handler造成内存泄露的分析和解决
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
个人作业
查看>>