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 ...
随机推荐
- 贝塞尔曲线:原理、自定义贝塞尔曲线View、使用!!!
一.原理 转自:http://www.2cto.com/kf/201401/275838.html Android动画学习Demo(3) 沿着贝塞尔曲线移动的Property Animation Pr ...
- 使用 ServKit(PHPnow) 搭建 PHP 环境[图]
http://servkit.org/guide 搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的 ...
- UESTC_秋实大哥搞算数 2015 UESTC Training for Data Structures<Problem N>
N - 秋实大哥搞算数 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Subm ...
- Maximum Subarray 解答
Question Find the contiguous subarray within an array (containing at least one number) which has the ...
- 有序线性搜索(Sorted/Ordered Linear Search)
如果数组元素已经排过序(升序),那我们搜索某个元素就不必遍历整个数组了.在下面给出的算法代码中,到任何一点,假设当前的arr[i]值大于搜索的值data,就可以停止搜索了. #include<s ...
- tangible T4 Editor 2.2.3 plus modeling tools for VS 2012 扩展名
tangible T4 Editor 2.2.3 plus modeling tools for VS 2012 扩展名 tangible T4 Editor 2.2.3 plus modeling ...
- poj 2356 Find a multiple(鸽巢原理)
Description The input contains N natural (i.e. positive integer) numbers ( N <= ). Each of that n ...
- asp.net + Jquery 实现类似Gridview功能 (一)
不知不觉2015年就过去一半了,由于过年前后公司人员陆续离职(这个...),项目忙不过来,从过年来上班就一直在忙,最近项目终于告一段落,开始步入正轨(不用天天赶项目了).所以最近才有时间写这个东西,可 ...
- SqlServer2008数据库透明加密
前几天研究了一下sql数据库的透明加密,记下来加深一下理解. 用脚本创建文件夹 --查文件夹有没有 EXEC master.dbo.xp_fileexist 'D:\DATA\storedcerts' ...
- C# 获得两日期之间所有月份(包括跨年)
前台: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...