https://vijos.org/p/1082

描述

东非大裂谷中有一片神秘的丛林,是全世界探险家的乐园,著名黄皮肤探险家BB一直想去试试。正好我国科学家2005年4月将首次对东非大裂谷进行科考,BB决定随科考队去神秘丛林探险。在出发之前,他搜集了国内外有关神秘丛林探险的资料,并绘制成一张地图:该地图上有若干安全点(包括入口点和出口点),并将这些安全点编号为1、2、…、n;如果一个安全点和另一个安全点有一条路直接相通,则用一条边标示;该图是一个连通图(任意两点间有至少一条路径),地图上每条路的长度和走这条路需要耗费的体力都做了标示。

KK行走速度为1,并知道自己体力为K。他想知道根据自己的体力情况能否成功地穿过丛林。

格式

输入格式

第一行两个整数n(<=5000) m(<=40000),分别表示地图上安全点的个数和边的数目;
第2行至第m+1 行每行4个整数x y c d,x、y表示有直接相联边的两个点的编号,c走这条路需要耗费的体力;d表示边的长度;(其中150<=c,d<=300)
第m+2行两个整数s t,分别表示安全的入口点和出口点的编号;
第m+3行一个整数k,表示BB的体力值;(K<10^9)
同一行上的多个数据用空格隔开。

输出格式

一个整数,如果BB能安全地从如入口穿过丛林到达出口,输出最短时间,否则输出-1

样例1

样例输入1

4 5
1 2 2 3
1 3 3 5
1 4 7 10
2 4 4 6
3 4 2 6
1 4
5
Copy

样例输出1

11
Copy

限制

各个测试点1s

要求输出最小时间,可以在SPFA判断时 加一个目前消耗体力<总体力

 1 #include <cstdio>
 2 #include <queue>
 3
 4 #define min(a,b) (a<b?a:b)
 5 #define INF (1<<30)
 6
 7 using namespace std;
 8
 9 const int M(40000+5);
10 const int N(5000+15);
11 int n,m,u,v,ups,dis,s,t,tps;
12
13 int head[N],sumedge;
14 struct Edge
15 {
16     int u,v,wp,wd,nx;
17     Edge(int u=0,int v=0,int nx=0,int wp=0,int wd=0):
18         u(u),v(v),nx(nx),wp(wp),wd(wd){}
19 }edge[M<<1];
20 void ins(int u,int v,int wp,int wd)
21 {
22     edge[++sumedge]=Edge(u,v,head[u],wp,wd);
23     head[u]=sumedge;
24 }
25
26 queue<int>que;
27 int needp[N],needt[N],inq[N];
28 void SPFA()
29 {
30     for(int i=1;i<=n;i++)
31         needp[i]=needt[i]=INF;
32     que.push(s);inq[s]=1;
33     needp[s]=0;needt[s]=0;
34     while(!que.empty())
35     {
36         u=que.front();
37         que.pop();
38         inq[u]=0;
39         for(int i=head[u];i;i=edge[i].nx)
40         {
41             v=edge[i].v;
42             if(needt[v]>needt[u]+edge[i].wd&&needp[u]+edge[i].wp<=tps)
43             {
44                 needt[v]=needt[u]+edge[i].wd;
45                 needp[v]=needp[u]+edge[i].wp;
46                 if(!inq[v])
47                     que.push(v),inq[v]=1;
48             }
49         }
50     }
51 }
52
53 int main()
54 {
55     scanf("%d%d",&n,&m);
56     for(int i=1;i<=m;i++)
57     {
58         scanf("%d%d%d%d",&u,&v,&ups,&dis);
59         ins(u,v,ups,dis);ins(v,u,ups,dis);
60     }
61     scanf("%d%d%d",&s,&t,&tps);
62     SPFA();
63     if(needp[t]==INF) printf("-1");
64     else printf("%d",needt[t]);
65     return 0;
66 }

转载于:https://www.cnblogs.com/Shy-key/p/6958029.html

Vijos——T 1082 丛林探险相关推荐

  1. 【POJ No. 2431】 丛林探险 Expedition

    [POJ No. 2431] 丛林探险 Expedition 北大OJ 题目地址 [题意] 一群人开着一辆卡车冒险进入丛林深处,卡车油箱坏了,每走1米就会漏1升油,他们需要到最近的城镇(距离不超过10 ...

  2. 分布式丛林探险系列之 Redis 主从复制模式

    本文内容 主从复制概述 主从复制原理 连接建立阶段 数据同步阶段 命令传播阶段 主从复制实战 本文小结 如果说,单体架构系统是坐在家里悠闲地喝着下午茶,那么,毫无疑问,分布式系统将会是一场永远充满惊喜 ...

  3. TYVJ 1248 丛林探险 解题报告

    就用DFS吧,然后注意剪枝和环就行,代码如下: #include <stdio.h> #include <stdlib.h> int rode[80000], next[800 ...

  4. POJ 2431 丛林探险(优先队列)

    额,错误代码WA得莫名其妙 #include<iostream> #include<cstdlib> #include<sstream> #include<c ...

  5. 一颗椰子糖机器人_孩子编程启蒙机器人玩了不下10个,最推荐哪个呢?

    这一年多大大小小的编程启蒙机器人玩了不下10个了: 说实话真不太多,有的: 限制太多,只能按照固定的玩法.地图,开始孩子还感兴趣,过活儿就想自己鼓捣,结果机器人只会前进.转圈,一会儿孩子也就失去了兴趣 ...

  6. canvas rotate 累加旋转_【教研动态】音乐活动中,使用材料累加情境的适宜性

    撰稿人:音乐组  张倩 音乐活动中,          使用材料累加                 情境的适宜性 --南师大幼儿园音乐组第四次教研活动 2019年4月24日,在这个柳絮飘飞的季节里, ...

  7. table类型数据提交_OGG数据同步异常问题总结

    [事件背景] 大家应该还记得上次本大湿分享过一遍文章<OceanBase数据同步挖掘日志慢解决方案>该方案引入OracleGoldenGate(以下简称OGG)进行数据同步.完美地解决了因 ...

  8. 数据、运营相关试题(二)【牛客网:京东2019春招产品运营类试卷】

    试题来源:牛客网 试题答案仅供参考.其中前半部分偏向产品运营类试题,后半部分偏向综合测试类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广 ...

  9. 户外运动装备新品--云息智能定位胸牌

    近年来随着人们的经济水平不断提升,其生活方式也不断变化.户外运动的内容也不断丰富起来,潜水.徒步.攀岩.丛林探险等丰富多样.其中丛林探险活动,更是可以满足人们追寻刺激亲历探险的快感,所以从事户外探险项 ...

最新文章

  1. Bi-level error correction for PacBio long reads
  2. KS008基于SSM的新闻发布系统
  3. FreeRTOS在STM32F429上移植
  4. mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)
  5. 毫秒数据字符串转换为DateTime
  6. springmvc 配置aop
  7. 计算机网络的概述发展填空题,计算机网络安全概述填空题.doc
  8. Form的method方法get和post的区别
  9. time 测试一条命令的执行时间
  10. 游戏角色设计有哪些风格类型
  11. C语言 大赛现场统分
  12. 光遇脚本弹琴_光遇自动弹琴脚本下载
  13. 调皮捣蛋的孩子--十大负面测试用例
  14. 从陈磊接棒后首份财报看拼多多农业版图2.0
  15. 对大数据指标的理解、大数据常用指标都有哪些
  16. c语言程序设计作业电话簿,C语言设计简易电话簿
  17. 【chrome】chrome百度网盘网页版倍速
  18. LaTeX中各种常用盒子的使用总结
  19. Google针对非 SDK 接口的限制
  20. android 调用搜狗地图api,搜狗地图API - Sogou Maps JavaScript API

热门文章

  1. Java集合(八) 迭代器Iterator、泛型、Map映射
  2. 如何测试大端存储和小端存储
  3. 【Linux】一步一步学Linux——ifdown命令(153)
  4. android实现存储,Android开发实现文件存储功能
  5. hadoop(5)——mrjob的使用(1)——直接在本地测试
  6. 下一个排列—leetcode31
  7. 解决 SSH 不能输入中文的问题
  8. 一份详尽的IPC$入侵资料
  9. Delphi自定义过程获取本机ip,名字,用户名
  10. java-Set集合源码学习