//State: POJ1724    Accepted    1188K    32MS    C++    1968B
/*
*题目大意:
*        给定总费用,还有n个城市,m条边,构成的图为单向图,然后
*        m条边有费用,还有距离,求从1->n的最小距离,要求走边时
*        费用要小于边的费用。
*解题思路:
*        用二维dij即可。
*/

View Code

#include <queue>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;const int MAXN = 105;
const int MAXE = 10005;
const int MAX_COST = 10005;
const int inf = 0x3f3f3f3f;typedef struct _node
{int v, next;int l, c;
}N;
N edge[MAXE];
int cntEdge, head[MAXN];typedef struct _no
{int v;int c, dis;_no(): dis(inf) {}_no(int a, int b, int c1): v(a), dis(b), c(c1) {} friend bool operator < (const struct _no &n1, const struct _no &n2){return n1.dis > n2.dis;}
}priN;void init()
{cntEdge = 0;for(int i = 0; i < MAXN; i++)head[i] = -1;
}void addEdge(int u, int v, int l, int c)
{edge[cntEdge].v = v;edge[cntEdge].l = l;edge[cntEdge].c = c;edge[cntEdge].next = head[u];head[u] = cntEdge++;
}int dis[MAXN];
int dijkstra(int s, int n, int tol)//1是起点,n是终点
{int vst[MAXN] = {0};for(int i = 0; i <= n; i++)dis[i] = inf;priority_queue<priN> Q;Q.push(priN(s, 0, 0));//dis[s] = 0;while(!Q.empty()){priN pre = Q.top();Q.pop();if(pre.v == n)return pre.dis;for(int f = head[pre.v]; f != -1; f = edge[f].next){int son = edge[f].v;int l = edge[f].l;int c = edge[f].c;if(pre.c + c <= tol){//dis[son] = dis[pre.v] + l;Q.push(priN(son, pre.dis + l, pre.c + c));}}}return -1;
}int main(void)
{
#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);
#endifint n, tol;while(scanf("%d", &tol) == 1){int m;scanf("%d %d", &n, &m);init();int u, v, l, c;for(int i = 0; i < m; i++){scanf("%d %d %d %d", &u, &v, &l, &c);addEdge(u, v, l, c);}int sol = dijkstra(1, n, tol);printf("%d\n", sol);}return 0;
}

转载于:https://www.cnblogs.com/cchun/archive/2012/09/02/2667588.html

POJ1724 ROADS 费用最短路相关推荐

  1. POJ 1724 二维费用最短路

    题目大意: 有N个城市,编号1-N 有R条路,每条路(单向)的起点为Si,终点为Di,长度为Li,如果要走这条路需要花Ti的钱 现在你只有K元钱,求在不超支的前提下,从1走到N需要的最短距离 这里总是 ...

  2. 2020牛客多校第1场H-Minimum-cost Flow-最小费用流

    https://ac.nowcoder.com/acm/contest/5666/H 题目大意:给出了每一条边的费用,有q个询问,问当每一条边的容量为u/v时,通过1流量的最小费用是多少. 思路:很明 ...

  3. 服务器维修测试工具,goss 简单快捷的服务器测试检验工具

    goss 是一个简单.快捷的服务器测试检验工具,dgoss 是一个包装可以支持基于容器的开发模式 同时可以暴露测试结果为一个http endpoint,比较方便. 使用goss容器运行 使用数据卷的模 ...

  4. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  5. 黑暗爆炸 2696. 航班安排

    链接 https://darkbzoj.tk/problem/2696 题意 神犇航空有 K K K 架飞机, N N N 个机场,以 0 ∼ N − 1 0\sim N−1 0∼N−1 编号,其中 ...

  6. ROADS POJ - 1724(最短路+邻接表+dfs)

    题意: N个城市,编号1到N.城市间有R条单向道路.有长度和过路费两个属性.Bob只有K块钱,他想从城市1走到城市N.问最短共需要走多长的路.如果到不了N,输出-1. 题目: N cities nam ...

  7. PAT甲级1087 All Roads Lead to Rome (30分):[C++题解]dijkstra求单源最短路综合、最短路条数、保存路径

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 首先这是一道dijkstra算法求最短路的题目,不过此题较为复杂.首先需要将字符串城市名映射成数字,这里使用hash table 名 ...

  8. 【bzoj2324】[ZJOI2011]营救皮卡丘 最短路-Floyd+有上下界费用流

    原文地址:http://www.cnblogs.com/GXZlegend/p/6832504.html 题目描述 皮卡丘被火箭队用邪恶的计谋抢走了!这三个坏家伙还给小智留下了赤果果的挑衅!为了皮卡丘 ...

  9. 洛谷 - P4009 汽车加油行驶问题(分层图最短路/最小费用最大流)

    题目链接:点击查看 题目大意:给出一个n*n的矩阵表示道路,途中有一些加油站,现在要从点(1,1)到达点(n,n),问最小花费,其中的一些规则如下: 汽车只能沿着网格边行驶,装满油后可以行驶K条边,出 ...

最新文章

  1. ClickHouse系列教程八:从一个服务器导入4T数据到另外一个服务器
  2. [置顶] 决策树绘图(二)
  3. 坦克大战c语言程序贴吧,坦克大战!
  4. jQuery 2.0.3 源码分析 事件体系结构
  5. Springboot分模块开发详解(2):建立子工程
  6. Python:Tensorflow中两个稀疏张量相乘
  7. linuxShell之一 文件读取 循环与分支
  8. Android Studio用不了jar
  9. mysql的cnf配置文件全解析
  10. position: relative相对定位
  11. ai里为什么不能随意放大缩小_AI选择工具为什么不能选择,缩放不了图像大小.
  12. 好用的在线思维导图软件--GitMind
  13. 滤波电容的大小的选取
  14. 数据中台应用实战-数据中台建设四步方法论:采、存、通、用
  15. linux挂载2T以上硬盘
  16. 演讲比赛流程管理---C++
  17. Android数据库比较
  18. 2021年如何加快百度对新站点的收录呢?
  19. 云服务器怎样搭建静态网站?
  20. 高并发的epoll+线程池,线程池专注实现业务

热门文章

  1. 游戏寻路中 A* 算法的改进
  2. 游戏市场阴影下的手游厂商,和他们无法触碰的未来
  3. 程序员养发(老师付推荐)
  4. 【算法】螺旋方阵 上交OJ1021
  5. django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)...
  6. TestNG+ReportNG+Maven优化测试报告
  7. Windsock套接字I/O模型学习 --- 第二章
  8. 【Xamarin挖墙脚系列:Xamarin4.0的重大变更】
  9. 享元模式 Composite
  10. Android与Linux以及GNU的关系