dijstra最短路径算法

9885560 2013-12-23 23:54:56 Accepted 3790 203MS 8112K 1343 B C++ 泽泽
 #include<cstdio>
#include<cstring>
#define inf 0xffffff
int g[][];
int v[][];
void dijstra(int n,int a)
{
int used[],i,j,k,min,dis[],lowcost[];
memset(used,,sizeof(used));
for(i=;i<=n;i++)
{
dis[i]=g[i][a];
lowcost[i]=v[i][a];
}
used[a]=;
for(i=;i<=n;i++)
{
j=a;min=inf;
for(k=;k<=n;k++)
{
if(dis[k]<min&&!used[k])
min=dis[k],
j=k;
}
used[j]=;
for(k=;k<=n;k++)
{
if(g[k][j]+dis[j]<dis[k]&&!used[k])
{
g[a][k]=g[k][a]=dis[k]=g[k][j]+dis[j];
lowcost[k]=v[a][k]=v[k][a]=v[k][j]+v[j][a];
}
if(g[k][j]+dis[j]==dis[k]&&!used[k])
{
if(v[k][j]+lowcost[j]<lowcost[k])
{
lowcost[k]=v[k][a]=v[k][j]+v[j][a];
} }
}
} }
int main()
{
int n,m,i,j,a,b,s,vi;
while(scanf("%d %d",&n,&m)!=EOF)
{
if(!n&&!m)break;
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
g[i][j]=inf,v[i][j]=inf;
}
g[i][i]=;
}
for(i=;i<=m;i++)
{
scanf("%d %d %d %d",&a,&b,&s,&vi);
if(s<g[a][b]) {
g[a][b]=g[b][a]=s;
v[a][b]=v[b][a]=vi;
}
if(s==g[a][b]&&vi<v[a][b])
{
v[a][b]=v[b][a]=vi;
}
}
int start,end;
scanf("%d %d",&start,&end);
dijstra(n,start);
printf("%d %d\n",g[start][end],v[start][end]);
}
return ;
}

HDOJ 3790的更多相关文章

  1. hdoj 3790 最短路径问题

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  2. hdoj(3790) 最短路径

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  3. HDOJ 3790 双权值Dijkstra

    #include <iostream> #include <stdio.h> #include <string.h> #include <cstring> ...

  4. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  6. HDOJ 1326. Box of Bricks 纯水题

    Box of Bricks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  7. HDOJ 1004 Let the Balloon Rise

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  8. hdoj 1385Minimum Transport Cost

    卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...

  9. HDOJ(2056)&HDOJ(1086)

    Rectangles    HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...

随机推荐

  1. Quartz.net的cron表达式

    写在前面 前面有一篇文章用到了quartz.net,在设置定时时间的时候,使用了cron表达式,这里记录几种常见设置方式,方便对照使用. 详情 在这篇文章:Quartz.Net在windows服务中的 ...

  2. Javascript基础系列之(六)循环语句(break和continue语句)

    break和continue语句对循环中的代码执行提供了更为严格的流程控制.break语句可以立刻退出循环,阻止再次执行循环体中的任何代码.continue语句只是退出当前这一循环,根据控制表达式还允 ...

  3. HTML5——行走日记

    效果展示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  4. WebService学习笔记一

    01——Schema约束复习 1.1 schema约束 几个重要知识: 1.namespace 相当于schema文件的id 2.targetNamespace属性 用来指定schema文件的name ...

  5. Sublime Text 3 绝对神器

    距第一篇的开箱水文,已经有4个月的时间了,但因为懒,就没有下文了.终于,今天,我觉得写一篇准技术文章了. 忘记了是怎么开始用的ST,应该是在网上看到别人推荐才用到吧,用了有半年了.在windows下是 ...

  6. java的RMI(Remote Method Invocation)

    RMI 相关知识RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络 ...

  7. myeclipse自动import

    不管包什么的 直接把代码全写出来 再按 ctrl + shift +o 这是自动导包的 前提是你写的代码是正确的

  8. 小结-Splay

    参照陈竞潇学长的模板写的BZOJ 3188: #include<cstdio> #include<cstring> #include<algorithm> #def ...

  9. Java基础-四要素之一《抽象》(接口)

    抽象的概念就是抽象出共同属性:成员变量和方法 定义抽象使用abstract关键字定义抽象类和方法 抽象类 abstract class 包含抽象方法的类,叫抽象类. 所以抽象类可以有private等多 ...

  10. Java编程思想学习(十五) 注解

    注解Annotation又叫元数据,是JDK5中引入的一种以通用格式为程序提供配置信息的方式.使用注解Annotation可以使元数据写在程序源码中,使得代码看起来简洁,同时编译器也提供了对注解Ann ...