畅通project续

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 62   Accepted Submission(s) : 48
Problem Description
某省自从实行了非常多年的畅通project计划后,最终修建了非常多路。只是路多了也不好,每次要从一个城镇到还有一个城镇时。都有很多种道路方案能够选择,而某些方案要比还有一些方案行走的距离要短非常多。

这让行人非常困扰。



如今,已知起点和终点,请你计算出要从起点到终点。最短须要行走多少距离。

 
Input
本题目包括多组数据,请处理到文件结束。

每组数据第一行包括两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。

城镇分别以0~N-1编号。 接下来是M行道路信息。

每一行有三个整数A,B,X(0<="A,B<N,A!=B,0<X<10000),表示城镇A和城镇B之间有一条长度为X的双向道路。" 再接下一行有两个整数S,T(0<="S,T<N)。分别代表起点和终点。

 
Output
对于每组数据,请在一行里输出最短须要行走的距离。假设不存在从S到T的路线,就输出-1.
 
Sample Input
3 3
0 1 1
0 2 3
1 2 1
0 2
3 1
0 1 1
1 2
 
Sample Output
2
-1
 
Author
linle
 
Source
2008浙大研究生复试热身赛(2)——全真模拟
代码:

#include<stdio.h>

#include<string.h>

#include<algorithm>

#include<queue>

#define INF 0x3f3f3f3f

using namespace std;

int n,m;

int s,e;

int dis[210],vis[210];

struct Edge

{

 int from,to,val,next;

}edge[2100];

int head[2100],edgenum;

void add(int u,int v,int w)

{

 Edge E={u,v,w,head[u]};

 edge[edgenum]=E;

 head[u]=edgenum++;

}

void SPFA(int x)

{

 queue<int>q;

 memset(vis,0,sizeof(vis));

 memset(dis,INF,sizeof(dis));

 q.push(x);

 dis[x]=0;

 vis[x]=1;

 while(!q.empty())

 {

  int u=q.front();

  q.pop();

  vis[u]=0;

  for(int i=head[u];i!=-1;i=edge[i].next)

  {

   int v=edge[i].to;

   if(dis[v]>dis[u]+edge[i].val)

   {

    dis[v]=dis[u]+edge[i].val;

    if(!vis[v])

    {

     vis[v]=1;

     q.push(v);

    }

   }

  }

 }

 if(dis[e]==INF)

  printf("-1\n");

 else

  printf("%d\n",dis[e]);

}

int main(){

 while(scanf("%d%d",&n,&m)!=EOF)

 {

  int a,b,c;

  edgenum=0;

  memset(head,-1,sizeof(head));

  while(m--)

  {

   scanf("%d%d%d",&a,&b,&c);

   add(a,b,c);

   add(b,a,c);

  }

  scanf("%d%d",&s,&e);

  SPFA(s);

}

 return 0;

}

hdoj 1874 畅通project续【SPFA】的更多相关文章

  1. HDOJ 1874 畅通project续

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

  2. HDU 1874 畅通project续 (最短路径)

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

  3. hdoj 1874 畅通工程续【dijkstra算法or spfa算法】

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

  4. HDU 1874 畅通project续 最短路径入门(dijkstra)

    Problem Description 某省自从实行了非常多年的畅通project计划后,最终修建了非常多路.只是路多了也不好,每次要从一个城镇到还有一个城镇时,都有很多种道路方案能够选择,而某些方案 ...

  5. hdoj 1874 畅通工程续

    Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行 ...

  6. HDU 1874 畅通工程续 SPFA || dijkstra||floyd

    http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目大意: 给你一些点,让你求S到T的最短路径. 我只是来练习一下SPFA的 dijkstra+邻接矩阵 ...

  7. hdoj 1874 畅通工程续(单源最短路+dijkstra)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 思路分析:该问题给定一个无向图.起始点和终点,要求求出从起始点到终点的最短距离: 使用Dijks ...

  8. 【floyd】HDU 1874 畅通project续

    之后的题解偏重有用/总结性质,尽量理解算法本身而不是题,时间复杂度什么的也能够放放. 非常久之前做过这个题,当时使用dijkstra做的,关于几个最短路算法,分类的话能够分为下面几种. 1.单源最短路 ...

  9. HDU | 1874 畅通工程续 SPFA&DIJIESITLA

    题目: 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让行人很困扰 ...

随机推荐

  1. Java中equals()和hashCode()的关系以及重写equals()和hashCode()的重要性

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6580647.html  一:关系 如果两个对象相等(equal),它们的hashcode一定相同: 如果两个对 ...

  2. nginx内置预定义变量

    nginx的配置文件中可以使用的内置变量以美元符$开始,也有人叫全局变量.其中,部分预定义的变量的值是可以改变的. $arg_PARAMETER 这个变量值为:GET请求中变量名PARAMETER参数 ...

  3. ACE中的参数截断工具-truncate

    变量截断工具是将类型A变量赋予类型B变量时使用,可自行判断变量是否需要截断,并且自动进行类型转换. 其全部为c实现 其入口为: ACE_Utils::truncate_cast<int> ...

  4. ODI调用WebService---->OdiInvokeWebService

    ODI 提供了OdiInvokeWebService调用第三方WebService,可以在package和过程中使用. 一.准备测试用WebService 天气预报Web服务,数据来源于中国气象局公用 ...

  5. 如何快速的将一个str转换为list

    # -*- coding: cp936 -*- #python 27 #xiaodeng #如何快速的将一个str转换为list str='python' print list(str)#['p', ...

  6. 开启spring boot actuator 安全认证

    通过本文配置,会对actuator 除了health外的所有端点,开启用户名密码验证,对于自己开发的接口不会要求用户名密码验证. 版本: <parent> <groupId>o ...

  7. MySQL与OLAP:分析型SQL查询最佳实践探索

    搞点多维分析,糙快猛的解决方式就是使用ROLAP(关系型OLAP)了.数据经维度建模后存储在MySQL,ROLAP引擎(比方开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库.OL ...

  8. 多线程和Socket——在线聊天室

    多线程开发和Socket技术 一.进程和线程 进程:每个应用程序对应一个进程: 线程:一个进程至少包含一个线程,线程要和CPU进行交互. 多线程并发(可以理解为):"同一时间"执行 ...

  9. shell脚本npm构建静态文件

    #!/bin/bash cd /data/web source /etc/profile /usr/bin/cnpm i && npm run build cp -r ./dist/* ...

  10. android开发学习---开发一个简易的短信发送器

    一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...