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. 年终福利:调试.NET Framework源代码

    前言 要问JAVA语言最大的优势之一,那就是开源.开源的JAVA框架让JAVA程序员可以不断的通过看源代码来学习.成长.解决问题.并随着时间增长能力越来越强,自然薪水就越来越高.而DONET程序员要看 ...

  2. Moqui学习之代码分析mantle priceServices.xml

    <?xml version="1.0" encoding="UTF-8"?> <!-- This software is in the pub ...

  3. Java基础-JDK动态代理

    JDK的动态代理依靠接口实现  代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代 ...

  4. 【poj3070】 Fibonacci

    http://poj.org/problem?id=3070 (题目链接) 题意 用矩阵乘法求fibonacci数列的第n项. Solution 矩乘入门题啊,题目把题解已经说的很清楚里= =. 矩乘 ...

  5. HDU 2896 病毒侵袭

    Problem Description 当太阳的光辉逐渐被月亮遮蔽,世界失去了光明,大地迎来最黑暗的时刻....在这样的时刻,人们却异常兴奋——我们能在有生之年看到500年一遇的世界奇观,那是多么幸福 ...

  6. Latex 笔记

    A source file is made up of text, formulas, and instructions (commands) to $\LaTeX.$ Commands start ...

  7. 关于Asp.Net Mvc3.0 使用KindEditor4.0 上传图片与文件

    http://blog.csdn.net/fyxq14hao/article/details/7245502 今天我们的Asp.Net Mvc 3的项目中,把KindEditor3.9改为 KindE ...

  8. Android事件机制之一:事件传递和消费

    http://www.cnblogs.com/lwbqqyumidi/p/3500997.html 关于Android中的事件机制,用到的地方还是很多的,并且这个知识点还真有点复杂. 在写这篇文章前, ...

  9. struct和union分析实例

    1.#include <stdio.h>#include <malloc.h>typedef struct _soft_array{    int len;    int ar ...

  10. anr产生的原理&如何避免(android)