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的更多相关文章

  1. #图# #dijkstra# ----- OpenJudge 726:ROADS

    OpenJudge 726:ROADS 总时间限制: 1000ms内存限制: 65536kB 描述 N cities named with numbers 1 ... N are connected ...

  2. OpenJudge/Poj 1251 丛林中的路/Jungle Roads

    1.链接地址: http://bailian.openjudge.cn/practice/1251/ http://poj.org/problem?id=1251 2.题目: 总时间限制: 1000m ...

  3. poj 1251 Jungle Roads (最小生成树)

    poj   1251  Jungle Roads  (最小生成树) Link: http://poj.org/problem?id=1251 Jungle Roads Time Limit: 1000 ...

  4. Jungle Roads[HDU1301]

    Jungle Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  5. POJ1947 Rebuilding Roads[树形背包]

    Rebuilding Roads Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 11495   Accepted: 5276 ...

  6. 【OpenJudge 8463】Stupid cat & Doge

    http://noi.openjudge.cn/ch0204/8463/ 挺恶心的一道简单分治. 一开始准备非递归. 大if判断,后来发现代码量过长,决定大打表判断后继情况,后来发现序号不对称. 最后 ...

  7. 【OpenJudge 191】【POJ 1189】钉子和小球

    http://noi.openjudge.cn/ch0405/191/ http://poj.org/problem?id=1189 一开始忘了\(2^{50}\)没超long long差点写高精度Q ...

  8. 【OpenJudge 1665】完美覆盖

    http://noi.openjudge.cn/ch0405/1665/?lang=zh_CN 状压水题,手动转移 #include<cstdio> #include<cstring ...

  9. 【OpenJudge 1793】矩形覆盖

    http://noi.openjudge.cn/ch0405/1793/ 好虐的一道题啊. 看数据范围,一眼状压,然后调了好长时间QwQ 很容易想到覆盖的点数作为状态,我用状态i表示至少覆盖状态i表示 ...

随机推荐

  1. asp.net 服务器Button控件使用(onclick和onclientclick使用)

    <asp:Button ID="btn_Save" class="button green" Style="width: 100px; heig ...

  2. jquery选择器之子元素

    HTML代码: :first-child 匹配第一个子元素,每个父元素的第一个子元素 :last-child 匹配最后一个子元素,每个父元素的最后一个子元素 <!DOCTYPE html> ...

  3. Windows安装包制作指南——Advanced Installer的使用

    1. 前言 最近需要制作windows的安装包,据说Advanced Installer比较强大,遂拿它来制作安装包.在网上少量资料以及官网简约文档中摸索前进,总算是制作出可用的安装包,在此记录,仅供 ...

  4. Spring中的ApplicationContext事件机制

    ApplicationContext的事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListerner接口来实现. 1. 创建EmailEvent pu ...

  5. [solr] - IKAnalyzer 扩展分词库

    在solr中加入自己的扩展分词库方法: 参考文章: http://www.cnblogs.com/dennisit/archive/2013/04/07/3005847.html 1.在solr的we ...

  6. 3D Touch集成过程整理

    1.集成App图标按压快速打开某个功能 在AppDelegate.m中加入以下三个东西 在启动方法里加入3D Touch菜单 - (BOOL)application:(UIApplication *) ...

  7. C# : Post 接收或发送XML

    项目分成两个 web(ASP.Net)用户处理请求,客户端(wpf/winform)发送请求 1.web项目 有两个页面 SendPost.aspx(单纯发送数据给客户端) 代码: public pa ...

  8. MapReduce、Hbase接口API实践

    读取hdfs中文件并做处理,取出卡号,通过卡号连接hbase查询出对应客户号,写入redis,因为不用输出,所以不调用context.write方法,整个操作在一个map中便可完成 protected ...

  9. css学习笔记(5)

    <style>*{margin:0; padding:0;}ul{ list-style:none;}li{ height:30px; width:100px; background:#F ...

  10. XE6移动开发环境搭建之IOS篇(4):VMware9里安装Mac OSX 10.8(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 以下内容比较长,我们 ...