Vijos——T 1082 丛林探险
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
样例输出1
11
限制
各个测试点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 丛林探险相关推荐
- 【POJ No. 2431】 丛林探险 Expedition
[POJ No. 2431] 丛林探险 Expedition 北大OJ 题目地址 [题意] 一群人开着一辆卡车冒险进入丛林深处,卡车油箱坏了,每走1米就会漏1升油,他们需要到最近的城镇(距离不超过10 ...
- 分布式丛林探险系列之 Redis 主从复制模式
本文内容 主从复制概述 主从复制原理 连接建立阶段 数据同步阶段 命令传播阶段 主从复制实战 本文小结 如果说,单体架构系统是坐在家里悠闲地喝着下午茶,那么,毫无疑问,分布式系统将会是一场永远充满惊喜 ...
- TYVJ 1248 丛林探险 解题报告
就用DFS吧,然后注意剪枝和环就行,代码如下: #include <stdio.h> #include <stdlib.h> int rode[80000], next[800 ...
- POJ 2431 丛林探险(优先队列)
额,错误代码WA得莫名其妙 #include<iostream> #include<cstdlib> #include<sstream> #include<c ...
- 一颗椰子糖机器人_孩子编程启蒙机器人玩了不下10个,最推荐哪个呢?
这一年多大大小小的编程启蒙机器人玩了不下10个了: 说实话真不太多,有的: 限制太多,只能按照固定的玩法.地图,开始孩子还感兴趣,过活儿就想自己鼓捣,结果机器人只会前进.转圈,一会儿孩子也就失去了兴趣 ...
- canvas rotate 累加旋转_【教研动态】音乐活动中,使用材料累加情境的适宜性
撰稿人:音乐组 张倩 音乐活动中, 使用材料累加 情境的适宜性 --南师大幼儿园音乐组第四次教研活动 2019年4月24日,在这个柳絮飘飞的季节里, ...
- table类型数据提交_OGG数据同步异常问题总结
[事件背景] 大家应该还记得上次本大湿分享过一遍文章<OceanBase数据同步挖掘日志慢解决方案>该方案引入OracleGoldenGate(以下简称OGG)进行数据同步.完美地解决了因 ...
- 数据、运营相关试题(二)【牛客网:京东2019春招产品运营类试卷】
试题来源:牛客网 试题答案仅供参考.其中前半部分偏向产品运营类试题,后半部分偏向综合测试类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广 ...
- 户外运动装备新品--云息智能定位胸牌
近年来随着人们的经济水平不断提升,其生活方式也不断变化.户外运动的内容也不断丰富起来,潜水.徒步.攀岩.丛林探险等丰富多样.其中丛林探险活动,更是可以满足人们追寻刺激亲历探险的快感,所以从事户外探险项 ...
最新文章
- Bi-level error correction for PacBio long reads
- KS008基于SSM的新闻发布系统
- FreeRTOS在STM32F429上移植
- mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)
- 毫秒数据字符串转换为DateTime
- springmvc 配置aop
- 计算机网络的概述发展填空题,计算机网络安全概述填空题.doc
- Form的method方法get和post的区别
- time 测试一条命令的执行时间
- 游戏角色设计有哪些风格类型
- C语言 大赛现场统分
- 光遇脚本弹琴_光遇自动弹琴脚本下载
- 调皮捣蛋的孩子--十大负面测试用例
- 从陈磊接棒后首份财报看拼多多农业版图2.0
- 对大数据指标的理解、大数据常用指标都有哪些
- c语言程序设计作业电话簿,C语言设计简易电话簿
- 【chrome】chrome百度网盘网页版倍速
- LaTeX中各种常用盒子的使用总结
- Google针对非 SDK 接口的限制
- android 调用搜狗地图api,搜狗地图API - Sogou Maps JavaScript API