题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874

spfa 模板

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<queue>
  5. using namespace std;
  6.  
  7. const int INF=<<;
  8. int cnt,head[],d[],vis[],n,m;
  9. queue<int>q;
  10.  
  11. struct node
  12. {
  13. int u,v,w,next;
  14. } edge[];
  15.  
  16. void add(int u,int v,int w)
  17. {
  18. edge[cnt].u=u;
  19. edge[cnt].v=v;
  20. edge[cnt].w=w;
  21. edge[cnt].next=head[u];
  22. head[u]=cnt++;
  23. };
  24.  
  25. void spfa(int s)
  26. {
  27. int i,u,v;
  28. for(i=; i<n; i++)
  29. d[i]=INF;
  30. d[s]=;
  31.  
  32. q.push(s);
  33. vis[s]=;
  34. while(!q.empty())
  35. {
  36. u=q.front();
  37. q.pop();
  38. vis[u]=;
  39. for(i=head[u]; i!=-; i=edge[i].next)
  40. {
  41. v=edge[i].v;
  42. if(d[u]+edge[i].w<d[v])
  43. {
  44. d[v]=d[u]+edge[i].w;
  45. if(!vis[v])
  46. {
  47. vis[v]=;
  48. q.push(v);
  49. }
  50. }
  51. }
  52. }
  53. };
  54. int main()
  55. {
  56. int u,v,w,s,t;
  57. while(cin>>n>>m)
  58. {
  59. cnt=;
  60. memset(head,-,sizeof(head));
  61. memset(vis,,sizeof(vis));
  62. while(m--)
  63. {
  64. cin>>u>>v>>w;
  65. add(u,v,w);
  66. add(v,u,w);
  67. }
  68. cin>>s>>t;
  69. spfa(s);
  70. if(d[t]<INF) cout<<d[t]<<endl;
  71. else cout<<-<<endl;
  72. }
  73. }

floyd 模板

  1. #include <stdio.h>
  2. #include <string.h>
  3. const int oo = <<;
  4. int map[][];
  5.  
  6. int n, m;
  7. void floyd()
  8. {
  9. int k,i,j;
  10. for( k = ; k < n; k++)
  11. for( i = ; i < n; i++)
  12. for( j = ; j < n; j++)
  13. if(map[i][k]+map[k][j] < map[i][j])
  14. map[i][j] = map[i][k]+map[k][j];
  15. }
  16. void init()
  17. {
  18. int i,j;
  19. for( i = ; i < n; i++)
  20. {
  21. for(j = ; j < n; j++)
  22. map[i][j] = oo;
  23. map[i][i] = ;
  24. }
  25. }
  26. int main()
  27. {
  28. int i;
  29. while(~scanf("%d %d", &n, &m))
  30. {
  31. init();
  32. int u, v, w;
  33. for( i = ; i < m; i++)
  34. {
  35. scanf("%d %d %d", &u, &v, &w);
  36. if(map[u][v] > w)
  37. {
  38. map[u][v] = w;
  39. map[v][u] = w;
  40. }
  41. }
  42. floyd();
  43. scanf("%d %d", &u, &v);
  44. if(map[u][v] < oo)
  45. printf("%d\n", map[u][v]);
  46. else
  47. printf("-1\n");
  48. }
  49. return ;
  50. }

hdu 1874 畅通工程续(模板题 spfa floyd)的更多相关文章

  1. ACM: HDU 1874 畅通工程续-Dijkstra算法

    HDU 1874 畅通工程续 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Desc ...

  2. HDU 1874 畅通工程续-- Dijkstra算法详解 单源点最短路问题

    参考 此题Dijkstra算法,一次AC.这个算法时间复杂度O(n2)附上该算法的演示图(来自维基百科): 附上:  迪科斯彻算法分解(优酷) problem link -> HDU 1874 ...

  3. hdu 1874 畅通工程续

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过 ...

  4. HDU 1874畅通工程续(迪杰斯特拉算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Time Limit: 3000/1000 MS (Java/Others)     ...

  5. hdu 1874 畅通工程续(SPFA模板)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. hdu 1874 畅通工程续(迪杰斯特拉优先队列,floyd,spfa)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  7. HDU 1874 畅通工程续(最短路/spfa Dijkstra 邻接矩阵+邻接表)

    题目链接: 传送门 畅通工程续 Time Limit: 1000MS     Memory Limit: 65536K Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...

  8. HDU——1874畅通工程续(Dijkstra与SPFA)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  9. HDU 1874 畅通工程续【Floyd算法实现】

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

随机推荐

  1. AngularJS(7)-表格

    ng-repeat 指令可以完美的显示表格. <!DOCTYPE html> <html lang="en"> <head> <meta ...

  2. linux实现nginx按照日期存储日志

    通过shell脚本实现+定时任务+nginx信号管理实现日志按日期存储. 1.编写shell脚本,实现日志按日期存储 #!/bin/bash base_path='/home/wwwlogs/' lo ...

  3. mysql中limit的用法实例解析

    mysql中limit的用法解析. 在mysql中,select * from table limit m,n.其中m是指记录开始的index,从0开始,n是指从第m条开始,取n条. 例如: mysq ...

  4. Catalyst揭秘 Day3 sqlParser解析

    Catalyst揭秘 Day3 sqlParser解析 今天我们会进入catalyst引擎的第一个模块sqlparser,它是catalyst的前置模块. 树形结构 从昨天的介绍我们可以看到sqlPa ...

  5. strcmp的源码实现

    微软方法: int __cdecl strcmp (const char *src, const char *dst) { ; while(!(ret = *(unsigned char *)src ...

  6. 【android-cocos2d-X iconv.h】在android下使用iconv

    (1) 下载文件 首先下载iconv文件  下载地址:http://download.csdn.net/detail/dingkun520wy/6703113 把解压后的iconv文件夹放到cocos ...

  7. Mac - 更新 Ruby

    因为准备在项目中使用bootstrap,在安装bootstrap过程中提示需要Ruby的版本在1.9.2以上,而目前使用的Ruby版本是Mac系统自带的1.8.7.所以需要对Ruby进行升级.这里使用 ...

  8. flex toolTip样式设置

        需要3个文件.一个是样式类,一个样式文件,一个是mxml文件. ●MyToolTip.as package{ import mx.core.UITextField; import mx.ski ...

  9. IntelliJ IDEA 部署Tomcat及创建一个web工程

    一.部署Tomcat 二.新建一个web工程 1.新建一个Project 2.现在建立一个简单的web工程,所以只勾选下面选中的,此外,本版本(IntelliJ IDEA 14.1.5只支持3.1版本 ...

  10. The 9th Zhejiang Provincial Collegiate Programming Contest->Problem :K-Yet Another Story of Rock-pap

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3610 题意:一对恋人受到fff团惩罚,需要比剪刀石头布,谁输谁死,出一样都 ...