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

spfa 模板

 #include<iostream>
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std; const int INF=<<;
int cnt,head[],d[],vis[],n,m;
queue<int>q; struct node
{
int u,v,w,next;
} edge[]; void add(int u,int v,int w)
{
edge[cnt].u=u;
edge[cnt].v=v;
edge[cnt].w=w;
edge[cnt].next=head[u];
head[u]=cnt++;
}; void spfa(int s)
{
int i,u,v;
for(i=; i<n; i++)
d[i]=INF;
d[s]=; q.push(s);
vis[s]=;
while(!q.empty())
{
u=q.front();
q.pop();
vis[u]=;
for(i=head[u]; i!=-; i=edge[i].next)
{
v=edge[i].v;
if(d[u]+edge[i].w<d[v])
{
d[v]=d[u]+edge[i].w;
if(!vis[v])
{
vis[v]=;
q.push(v);
}
}
}
}
};
int main()
{
int u,v,w,s,t;
while(cin>>n>>m)
{
cnt=;
memset(head,-,sizeof(head));
memset(vis,,sizeof(vis));
while(m--)
{
cin>>u>>v>>w;
add(u,v,w);
add(v,u,w);
}
cin>>s>>t;
spfa(s);
if(d[t]<INF) cout<<d[t]<<endl;
else cout<<-<<endl;
}
}

floyd 模板

 #include <stdio.h>
#include <string.h>
const int oo = <<;
int map[][]; int n, m;
void floyd()
{
int k,i,j;
for( k = ; k < n; k++)
for( i = ; i < n; i++)
for( j = ; j < n; j++)
if(map[i][k]+map[k][j] < map[i][j])
map[i][j] = map[i][k]+map[k][j];
}
void init()
{
int i,j;
for( i = ; i < n; i++)
{
for(j = ; j < n; j++)
map[i][j] = oo;
map[i][i] = ;
}
}
int main()
{
int i;
while(~scanf("%d %d", &n, &m))
{
init();
int u, v, w;
for( i = ; i < m; i++)
{
scanf("%d %d %d", &u, &v, &w);
if(map[u][v] > w)
{
map[u][v] = w;
map[v][u] = w;
}
}
floyd();
scanf("%d %d", &u, &v);
if(map[u][v] < oo)
printf("%d\n", map[u][v]);
else
printf("-1\n");
}
return ;
}

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. jquery横向滚动条

    此代码献给wendy 由于工作太忙,下次再整理成插件调用,先记录下来,欢迎同学们提意见. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

  2. Linux编程学习笔记 -- Process

    进程是一个程序的运行.   在一个程序中执行另一个执程序的方法有两种: 1)system 在shell中执行程序 2)fork + exec 复制一个进程,在进程中用新的程序替换原有的程序   for ...

  3. RFC822DateGMT

    function RFC822DateGMT(dd: TDateTime): string; const Days:..] of string= ('Sun','Mon','Tue','Wed','T ...

  4. 正则表达式模块re

    正则表达式通过特定的式子匹配某种类型的字符串.对字符串进行匹配验证或者从大量的字符串里提取出特定的信息. 正则表达式包含普通字符和特殊字符.大部分的普通字符如‘A’或‘0’可以简单的来匹配自己.如te ...

  5. jsf2.0视频

    jsf2.0 入门视频 教程   需要的看下.初次录视频.还有很多需要完善. JSF交流QQ群84376982 JSF入门视频下载地址  http://pan.baidu.com/s/1jG3y4T4 ...

  6. DateTime.ToString()

       /*            [y]代表年份,注意是小写的y,大写的Y并不代表年份.            [M]表示月份.            [d]表示日期,注意D并不代表什么.       ...

  7. Netty4.x中文教程系列(二) – 白话概念

    "Hello World"的代码固然简单,不过其中的几个重要概念(类)和 Netty的工作原理还是需要简单明确一下,至少知道其是负责什.方便自己以后更灵活的使用和扩展.   声明, ...

  8. sql不重复的查找统计数据(经典)

    例表如下: 表名:MYTEST TID    COL1    COL2     COL3 1           1           A            A2           1     ...

  9. Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)

    远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是 ...

  10. 正确使用STL-MAP中Erase函数

    一切尽在代码中. #include <iostream> #include <map> #include <string> using namespace std ...