判断路径相等时的情况

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std; #define pf printf
#define sf scanf
#define mp make_pair
#define INF 0x3f3f3f3f const int MAXN = + ; int n,m; struct node
{
int d,fee;
}g[MAXN][MAXN]; int dis[MAXN],f[MAXN],vis[MAXN]; void dijkstra(int v)
{
int i,j,mind,minf,dir;
for(i=;i<=n;i++)
{
dis[i] = f[i] = INF;
vis[i] = ;
}
dis[v] = f[v] = ;
vis[v] = ;
for(i=;i<=n;i++)
{
mind = minf = INF;
for(j=;j<=n;j++)
{
if(!vis[j] && (dis[j]<mind || (dis[j]==mind && f[j]<minf)))
{
mind = dis[j];
minf = f[j];
dir = j;
}
}
vis[dir] = ;
for(j=;j<=n;j++)
{
if(!vis[j] && g[dir][j].d<INF && (dis[j] > (dis[dir]+g[dir][j].d) || (dis[j] == (dis[dir]+g[dir][j].d) && f[j]>f[dir]+g[dir][j].fee)))
{
dis[j] = dis[dir]+g[dir][j].d;
f[j]=f[dir]+g[dir][j].fee;
}
}
} } int main()
{
int i,j;
int a,b,d,fee,st,ed;
while(sf("%d %d",&n,&m)==,m+n)
{
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
g[i][j].d = g[i][j].fee = (i==j ? :INF);
}
}
for(i=;i<m;i++)
{
sf("%d%d%d%d",&a,&b,&d,&fee);
if(d < g[a][b].d)
{
g[a][b].d = g[b][a].d = d;
g[a][b].fee = g[b][a].fee = fee;
}
else if(d == g[a][b].d)
g[a][b].fee = g[b][a].fee = min(g[a][b].fee,fee);
}
sf("%d%d",&st,&ed);
dijkstra(st);
pf("%d %d\n",dis[ed],f[ed]);
}
return ;

HDU-3790 最短路最小花费的更多相关文章

  1. HDU 3790最短路径问题 [最短路最小花费]

    题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=3790] 最短路径问题 Time Limit: 2000/1000 MS (Java/Others)  ...

  2. HDU 3790 最短路径问题 (最短路)

    题目链接 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. ...

  3. hdu 5521 最短路

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  4. hdu 3790 最短路径问题(双重权值,dijkstra算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 题目大意:题意明了,输出最短路径及其花费. 需要注意的几点:(1)当最短路径相同时,输出最小花费 ...

  5. ACM: HDU 3790 最短路径问题-Dijkstra算法

    HDU 3790 最短路径问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Des ...

  6. HDU 5988.Coding Contest 最小费用最大流

    Coding Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  7. 【bzoj1266】[AHOI2006]上学路线route 最短路+最小割

    题目描述 可可和卡卡家住合肥市的东郊,每天上学他们都要转车多次才能到达市区西端的学校.直到有一天他们两人参加了学校的信息学奥林匹克竞赛小组才发现每天上学的乘车路线不一定是最优的. 可可:“很可能我们在 ...

  8. Mr. Panda and Crystal HDU - 6007 最短路+完全背包

    题目:题目链接 思路:不难看出,合成每个宝石需要消耗一定的魔力值,每个宝石有一定的收益,所以只要我们知道每个宝石合成的最小花费,该题就可以转化为一个背包容量为初始魔力值的完全背包问题,每个宝石的最小花 ...

  9. PAT-1030 Travel Plan (30 分) 最短路最小边权 堆优化dijkstra+DFS

    PAT 1030 最短路最小边权 堆优化dijkstra+DFS 1030 Travel Plan (30 分) A traveler's map gives the distances betwee ...

随机推荐

  1. luoguP2479 [SDOI2010]捉迷藏

    https://www.luogu.org/problemnew/show/P2479 据说可以用线段树做但是我不会,只能写一个 KD-Tree 了 对于每个点求出距离它最远的点和最近的点的距离,然后 ...

  2. Python strip()函数用法

    Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数: strip 同时去掉左右两边的空格lstrip 去掉左边的空格rstrip 去掉右边的空格 具体示 ...

  3. [Flex] 组件Tree系列 —— 实现右键拓展功能

    主程序mxml: <?xml version="1.0" encoding="utf-8"?> <!--功能描述:结合tree拓展右键功能 必 ...

  4. Postman使用手册4——API test

    一.Pre Request Scripts Postman v0.10+ 版本支持pre-request scripts. prerequest script.png pre-request scri ...

  5. windows10下使用ubuntu,并搭建nodejs环境

    1.首先要在win10的设置里打开开发人员使用模式 2.在bash下,下载ubuntu系统 3.安装git,因为要把下载nvm的话,需要git sudo apt-get install git 4.安 ...

  6. 2016级算法第四次上机-G.ModricWang的序列问题 II

    1021 ModricWang的序列问题II 思路 此题与上一题区别不是很大,只是增加了一个长度限制,当场通过的人数就少了很多. 大体解题过程与上一题相同.区别在于对\(f[]\) 的操作.没有长度限 ...

  7. 2016级算法第一次练习赛-F.AlvinZH的儿时梦想——机器人篇

    864 AlvinZH的儿时梦想----机器人篇 题目链接:https://buaacoding.cn/problem/868/index 思路 中等题. 判断无限玩耍: \(p\) 的值能够承担的起 ...

  8. SpringBoot入门(IDEA篇)(三)

    一.什么是JPA JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate.TopLink等. 二.Mysql数据库示例 1.在app ...

  9. 神奇的树上启发式合并 (dsu on tree)

    参考资料 https://www.cnblogs.com/zhoushuyu/p/9069164.html https://www.cnblogs.com/candy99/p/dsuontree.ht ...

  10. [转] Jenkins pipeline 中获取 exit code, stdout and stderr 返回值和输出

    [From] https://issues.jenkins-ci.org/browse/JENKINS-44930 其做法是,把stdout定向到一个文件,sh 配置 returnStatus: tr ...