判断路径相等时的情况

#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. HDU6184【Counting Stars】(三元环计数)

    题面 传送门 给出一张无向图,求 \(4\) 个点构成两个有公共边的三元环的方案数. 题解 orz余奶奶,orz zzk 首先,如果我们知道经过每条边的三元环个数\(cnt_i\),那么答案就是\(\ ...

  2. spring的包大概作用(备忘)

    1.spring.jar 是包含有完整发布模块的单个jar 包. 2. org.springframework.aop 包含在应用中使用Spring的AOP特性时所需的类. 3. org.spring ...

  3. uC/OS-II 函数之OSInit()

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 对于有热心的小伙伴在微博上私信我,说我的uC/OS-II 一些函数简介篇幅有些过于长应该分开介绍.应小伙伴的要求,特此将文章分开进行讲解.本文主要 ...

  4. iOS hook原理

    OC中的method其实是一个结构体 struct objc_method{ SEL method_name char *method_types IMP method_imp } SEL是方法名,I ...

  5. P3994 高速公路

    题目链接 题意分析 这是一道树上斜率优化题 首先 \[dp[i]=min\{dp[j]+(dis[i]-dis[j])* p[i]+q[i]\}(j∈Pre_i)\] 那么就是 \[p[i]=\fra ...

  6. sap server笔记

    system 就是sap hana database,如果一个system有多个instance,则必须分散到不同的host中,每个system有唯一的sid. hello各位,jackie建议我们去 ...

  7. 分布式文件系统之FastDFS

    环境引入: 在一个大型的教育官网,会拥有大量优质的视频教程,并且免费提供给用户去下载,文件太多如果高效存储?用户访问量大如何保证下载速度?分布式文件系统是解决这些问题的有效方法之一 一.什么是文件系统 ...

  8. python全栈开发_day11_作用域,函数嵌套和闭包

    一:作用域 1)什么是作用域 作用域是规定一个变量可以作用的范围,运行和销毁的范围 2)作用域的分类 1.内置作用域built_in:随着解释器的运行而产生,解释器运行的终止而销毁. 2.全局作用域g ...

  9. luogu P2365 任务安排(FJOI2019 batch)

    洛谷传送门 FJOI 日常原题 $2333$(似乎还不如 SDOI2012 任务安排 $2333$) 显然考虑 $dp$,这个是经典的把未来的代价先计算的 $dp$,然后才是斜率优化 一开始想状态时一 ...

  10. python 类,对象

    声明类 ''' class 类名: '类的文档字符串' 类体 ''' #我们创建一个类 class Data: pass 声明类 class Person: #定义一个人类 role = 'perso ...