openjudge ROADS
726:ROADS
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
- N cities named with numbers 1 ... N are connected with one-way roads. Each road has two parameters associated with it : the road length and the toll that needs to be paid for the road (expressed in the number of coins).
Bob and
Alice used to live in the city 1. After noticing that Alice was cheating in the
card game they liked to play, Bob broke up with her and decided to move away -
to the city N. He wants to get there as quickly as possible, but he is short on
cash.We want to help Bob to find the shortest path from the city
1 to the city N that he can afford with the amount of money he has. - 输入
- The first line of the input contains the integer K,
0 <= K <= 10000, maximum number of coins that Bob can spend on his way.
The second line contains the integer N, 2 <= N <= 100, the total
number of cities.The third line contains the integer R, 1 <= R <=
10000, the total number of roads.Each of the following R lines
describes one road by specifying integers S, D, L and T separated by single
blank characters :- S is the source city, 1 <= S <= N
- D is the destination city, 1 <= D <= N
- L is the road length, 1 <= L <= 100
- T is the toll (expressed in the number of coins), 0 <= T
<=100
Notice that different roads may have the same source and
destination cities. - 输出
- The first and the only line of the output should contain the total length of
the shortest path from the city 1 to the city N whose total toll is less than or
equal K coins.
If such path does not exist, only number -1 should be written
to the output. - 样例输入
-
5
6
7
1 2 2 3
2 4 3 3
3 4 2 4
1 3 4 1
4 6 2 1
3 5 2 0
5 4 3 2 - 样例输出
- 11
- 题目大意:
- n个点,m条边,每条边有长度和费用,需要求出1到n的在费用不大于k的情况下的最短路径,如果没有输出-1
- 这道题dijsktra算法即可,并且不能记录dis数组,直接在第一次到达n时即为ans;
- 如果记录dis可能会出现花费不足以到达终点但是总长度较短,导致输出-1。
#include<cstdio>
#include<queue>
using namespace std;
struct X
{
int v,q,j,n,f;
bool operator<(const X &a)const
{
if(q==a.q) return j>a.j;
return q>a.q;
}//重载运算符
}x[];
priority_queue<X>qq;//调用系统堆
int main()
{
int k,n,m;
scanf("%d%d%d",&k,&n,&m);
for(int i=;i<=m;i++)
{
int u;
scanf("%d%d%d%d",&u,&x[i].v,&x[i].q,&x[i].j);
x[i].n=x[u].f;
x[u].f=i;
}
qq.push((X){,,,,});//载入初始节点
while(!qq.empty())
{
X t=qq.top();qq.pop();
if(t.v==n)
{
printf("%d",t.q);//到达n即为最优解
return ;
}
for(int i=x[t.v].f;i;i=x[i].n)
if(t.j+x[i].j<=k) qq.push((X){x[i].v,x[i].q+t.q,x[i].j+t.j,,});
}
printf("-1");
return ;
}
openjudge ROADS的更多相关文章
- #图# #dijkstra# ----- OpenJudge 726:ROADS
OpenJudge 726:ROADS 总时间限制: 1000ms内存限制: 65536kB 描述 N cities named with numbers 1 ... N are connected ...
- OpenJudge/Poj 1251 丛林中的路/Jungle Roads
1.链接地址: http://bailian.openjudge.cn/practice/1251/ http://poj.org/problem?id=1251 2.题目: 总时间限制: 1000m ...
- poj 1251 Jungle Roads (最小生成树)
poj 1251 Jungle Roads (最小生成树) Link: http://poj.org/problem?id=1251 Jungle Roads Time Limit: 1000 ...
- Jungle Roads[HDU1301]
Jungle Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- POJ1947 Rebuilding Roads[树形背包]
Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11495 Accepted: 5276 ...
- 【OpenJudge 8463】Stupid cat & Doge
http://noi.openjudge.cn/ch0204/8463/ 挺恶心的一道简单分治. 一开始准备非递归. 大if判断,后来发现代码量过长,决定大打表判断后继情况,后来发现序号不对称. 最后 ...
- 【OpenJudge 191】【POJ 1189】钉子和小球
http://noi.openjudge.cn/ch0405/191/ http://poj.org/problem?id=1189 一开始忘了\(2^{50}\)没超long long差点写高精度Q ...
- 【OpenJudge 1665】完美覆盖
http://noi.openjudge.cn/ch0405/1665/?lang=zh_CN 状压水题,手动转移 #include<cstdio> #include<cstring ...
- 【OpenJudge 1793】矩形覆盖
http://noi.openjudge.cn/ch0405/1793/ 好虐的一道题啊. 看数据范围,一眼状压,然后调了好长时间QwQ 很容易想到覆盖的点数作为状态,我用状态i表示至少覆盖状态i表示 ...
随机推荐
- 深入浅出数据分析 Head First Data Analysis Code 数据与代码
<深入浅出数据分析>英文名为Head First Data Analysis Code, 这本书中提供了学习使用的数据和程序,原书链接由于某些原因不 能打开,这里在提供一个下载的链接.去下 ...
- dashboard
http://www.htmleaf.com/pins/chart-doc/index.html http://www.flotcharts.org/flot/examples/ https://gi ...
- SQL Server中常用的SQL语句(转):
SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...
- SQL Server DBA性能优化
虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决. 查询速度慢的原因很多,常见如下几种:1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2. ...
- 【freemaker】之include,import区别
新建三个模版文件 inc1.ftl,inc2.ftl,03.ftml <#--inc1--> <#assign username="老李1"> <#- ...
- access remote libvirtd
访问远程libvirtd服务因为是在一个可信环境中运行,所以可以忽略安全方面的操作,步骤如下:(1)更改libvirtd配置 1.1 更改/ect/sysconfig/libvirtd文件,打开 ...
- 实用的VS工具
工具 1.Visual Studio Visual Studio Productivity Power tool:Visual Studio专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决 ...
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)
[注]原文 http://www.cnblogs.com/beniao/archive/2010/04/18/1714544.html 墨卡托投影(Mercator Projection),又名&qu ...
- SSH框架流程
流程图 具体步骤 一.实体类 //Serializable在网络的环境下做类传输public class Category implements Serializable { private Inte ...
- vbs脚本总结
1. msgbox语法:msgbox "对话框","对话框标题" 例:const hw="Hello World!" msgbox(hw) ...