POJ 1724 最短路费用限制
迪杰斯塔拉裸题
最大花费
n个点
m条有向边
起点终点 路径长度 路径花费
问:在花费限制下,最短路径的长度
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cctype>
#include <queue>
#include <stdlib.h>
#include <cstdlib>
#include <math.h>
#include <set>
#include <vector>
#define inf 107374182
#define N 101
#define M 10001
#define ll int
using namespace std;
inline ll Max(ll a,ll b){return a>b?a:b;}
inline ll Min(ll a,ll b){return a<b?a:b;}
struct Edge{
int f,t,d,w;
int nex;
}edge[M];
int head[N],edgenum;
void addedge(int u,int v,int d,int w){
Edge E={u,v,d,w,head[u]};
edge[edgenum]=E;
head[u]=edgenum++;
} struct node{
int to,dd,use;
node(int a=0,int c=0,int b=0):to(a),dd(c),use(b){}
bool operator<(const node&a)const{
if(a.dd==dd)return a.use<use;
return a.dd<dd;
}
};
int n,maxcost,dis[N];
void spfa(int s,int e){
int i;
for(i=1;i<=n;i++)dis[i]=inf;
dis[s]=0; priority_queue<node>q; while(!q.empty())q.pop();
q.push(node(s,0,0));
while(!q.empty())
{
node temp=q.top(); q.pop();
int u=temp.to,nowcost=temp.use,d=temp.dd;
if(u==e)return;
for(i=head[u];i!=-1;i=edge[i].nex)
{
int v=edge[i].t;
if(nowcost+edge[i].w<=maxcost)
{
if(dis[v]>d+edge[i].d)
dis[v]=d+edge[i].d;
q.push(node(v,d+edge[i].d,nowcost+edge[i].w));
}
}
}
}
int main()
{
int i,m,u,v,d,w;
while(~scanf("%d",&maxcost)){
scanf("%d%d",&n,&m);
memset(head,-1,sizeof(head)); edgenum=0; while(m--){
scanf("%d %d %d %d",&u,&v,&d,&w);
addedge(u,v,d,w);
} spfa(1,n);
if(dis[n]==inf)dis[n]=-1;
printf("%d\n",dis[n]);
}
return 0;
}
POJ 1724 最短路费用限制的更多相关文章
- POJ 1724 二维费用最短路
题目大意:有N个城市,编号1-N有R条路,每条路(单向)的起点为Si,终点为Di,长度为Li,如果要走这条路需要花Ti的钱现在你只有K元钱,求在不超支的前提下,从1走到N需要的最短距离 这里总是希望路 ...
- poj 1724(最短路+优先队列)
ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13436 Accepted: 4921 Descriptio ...
- poj 1724 最短路+优先队列(两个约束条件)
/*两个约束条件求最短路,用优先队列*/ #include<stdio.h> #include<string.h> #include<queue> using na ...
- POJ 1724 (分层图最短路)
### POJ 1724 题目链接 ### 题目大意: 给你 N 个点 ,M 条有向路,走每条路需要花费 C 元,这段路的长度为 L . 给你 K 元,问你能否从 1 走到 N 点且花费不超过 K 元 ...
- 深搜+剪枝 POJ 1724 ROADS
POJ 1724 ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12766 Accepted: 4722 D ...
- Heavy Transportation POJ 1797 最短路变形
Heavy Transportation POJ 1797 最短路变形 题意 原题链接 题意大体就是说在一个地图上,有n个城市,编号从1 2 3 ... n,m条路,每条路都有相应的承重能力,然后让你 ...
- ROADS POJ - 1724 约束最短路 暴搜 加剪枝
http://poj.org/problem?id=1724 题意:最短路的模板,不过每条边加上一个费用,要求总费用不超过k 题解:不能用dijkstra ,直接暴力,dfs维护len和cost. 普 ...
- poj 1724(有限制的最短路)
题目链接:http://poj.org/problem?id=1724 思路: 有限制的最短路,或者说是二维状态吧,在求最短路的时候记录一下花费即可.一开始用SPFA写的,900MS险过啊,然后改成D ...
- 【poj 1724】 ROADS 最短路(dijkstra+优先队列)
ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12436 Accepted: 4591 Description N ...
随机推荐
- Why Functional Programming Matters
http://hi.baidu.com/lhurricane/item/35b57e12a1e3c5ddbf9042a7 http://blog.csdn.net/ddwn/article/detai ...
- OpenCV视屏跟踪
#include <stdio.h> #include <iostream> #include "opencv2/imgproc/imgproc.hpp" ...
- ORACLE 中写入txt文本与从Txt文件中读入数据 修改表结构
--创建一个表 DROP TABLE TEST CASCADE CONSTRAINTS ; CREATE TABLE TEST(A VARCHAR(30),B VARCHAR(30)); --查看具体 ...
- 【BZOJ1031】[JSOI2007]字符加密Cipher 后缀数组
[BZOJ1031][JSOI2007]字符加密Cipher Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的 ...
- leetcode_question_73 Set Matrix Zeroes
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. Follow ...
- Android应用程序与SurfaceFlinger服务的连接过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7857163 前文在描述Android应用程序和 ...
- asp.net 后台对话框,确认跳转
Response.Write("<script>alert('不合法!'); window.location.href='" + ResolveClientUrl(&q ...
- Arrays.copyof
public static int[] copyOf(int[] original, int newLength) { int[] copy = new int[newLength]; System. ...
- iOS开发面试题整理 (三)
1. 风格纠错题 修改完的代码: typedef NS_ENUM(NSInteger, CYLSex) { CYLSexMan, CYLSexWoman }; @interface CYLUser : ...
- CAA调试
在需要调试的Module(*.m)上右键,选择属性,命令位置选择你的framework目录 路径选择对应工程目录下的\intel_a(或者Win64 -- 64位机器) 然后就可以尽 ...