(题目蜜汁复制不下来...直接进入正题!然后我就会被发现我的题解巨短无比....羞愧)

算法标签:dijk

思路:

这题的难点在于高度的控制,其实因为他时间消耗都只会下降,所以当我们走到一定步数之后,其实每一段都是重复上升再走到0,周而复始。根据这个条件,我们可以根据他所走的权值,看出我们当前的高度,于是我们就可以根据权值推出高度,剩下的就是正常的dijk寻找最短路了!

以下代码:

#include<bits/stdc++.h>
#define il inline
#define LL long long
#define _(d) while(d(isdigit(ch=getchar())))
using namespace std;
const int N=1e5+5,M=3e5+5;const LL inf=2e18;
int n,m,x,h[N],head[N],ne[M<<1],w[M<<1],to[M<<1],cnt;LL d[N];
struct node{int x;LL d;bool operator<(const node&t1)const{return d>t1.d;};};priority_queue<node> q;
il int read(){int x,f=1;char ch;_(!)ch=='-'?f=-1:f;x=ch^48;_()x=(x<<1)+(x<<3)+(ch^48);return f*x;}
il void insert(int x,int y,int z){ne[++cnt]=head[x];head[x]=cnt;to[cnt]=y;w[cnt]=z;}
il void dijk(){q.push((node){1,d[1]});while(!q.empty()){node now=q.top();q.pop();if(d[now.x]!=now.d)continue;for(int i=head[now.x];i;i=ne[i]){LL hh,ww=0;hh=max((LL)x-d[now.x],0ll)-(LL)w[i];if(hh<0){ww=-hh;if(max((LL)x-d[now.x],0ll)+ww>h[now.x])continue;}else if(hh>h[to[i]]){ww=hh-h[to[i]];}if(d[to[i]]>d[now.x]+(LL)w[i]+(LL)ww){d[to[i]]=d[now.x]+(LL)w[i]+(LL)ww;q.push((node){to[i],d[to[i]]});}}}
}
int main()
{n=read();m=read();x=read();for(int i=1;i<=n;i++)h[i]=read();for(int i=1;i<=m;i++){int x=read(),y=read(),z=read();insert(x,y,z);insert(y,x,z);}for(int i=1;i<=n;i++)d[i]=inf;d[1]=0;dijk();if(d[n]==inf)puts("-1");else{LL hh,ww=0;hh=max((LL)x-d[n],0ll);ww=abs(hh-h[n]);printf("%lld\n",d[n]+ww);}return 0;
}

View Code

转载于:https://www.cnblogs.com/Jessie-/p/9874627.html

2018.10.29-dtoj-4007-飞天鼠小E相关推荐

  1. 10天精读掌握:计算机组成与设计(COAD:Patterson and Hennessy) (第4天 2018/10.29)

    10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第4天 2018/10.29 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 5. ...

  2. 【一周头条盘点】中国软件网(2018.10.29~2018.11.2)

    每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 一周热点 2018年第二季度SaaS公有云市场研究报告 SEG发布了"2018年第二季度SaaS公共市场报告&qu ...

  3. 《惢客创业日记》2018.10.29(周一) 中国只有一个雷军,却有千万个中小企业

    今天抽时间看了小米mix3的故宫发布会的视频回放.虽然,健康和时间都不允许我把精力花在这场发布会上,但自己还是有点忍不住,就利用晚上时间边走路锻炼身体.边看发布会. 从看罗辑思维<时间的朋友&g ...

  4. ssl提高组周一备考赛【2018.10.29】

    前言 想去德育基地- 成绩 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 111 2017myself2017myself20 ...

  5. 2018.10.29 bzoj1023: [SHOI2008]cactus仙人掌图(仙人掌+单调队列优化dp)

    传送门 求仙人掌的直径. 感觉不是很难. 分点在环上面和不在环上分类讨论. 不在环上直接树形dpdpdp. 然后如果在环上讨论一波. 首先对环的祖先有贡献的只有环上dfsdfsdfs序最小的点. 对答 ...

  6. 【比赛报告】2018.10.11校赛[8-2情人节欢乐赛] NOIP练习赛卷十二

    比赛时间:2018.10.10 选手:lrllrl 成绩 100+100+100=300 用时:约1h T1 果实计数 显然易得,答案为 b n m o d    k b^n\mod k bnmodk ...

  7. 日常作业2018.12.29

    作业 1.赌博游戏(循环) package com.play;import java.util.Scanner; /*** 赌博游戏2.0升级版* @author ZZH* 2018.12.29*/ ...

  8. DP基本问题总结(2018.5.29 2018.6.9 2018.8.9更新)

    参考文献: [1]https://segmentfault.com/a/1190000006325321 [2]https://blog.csdn.net/q623702748/article/det ...

  9. ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。

    ARM的存储器映射与存储器重映射[转载]2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来. arm处理器本身所产生的地址为虚拟地址,每一个arm芯片内都 ...

  10. 【不忘初心】Win10_20H2_2009_19042.572_X64_六合一_[纯净精简版](2020.10.29)

    母版来自MSDN  WIN10_20H2.19042.508,集成补到19041.572,20H2相比1909 2004版本要稳定很多,精简起来也比较顺手,相对来说体积比之前的要小一些,精简方法基本上 ...

最新文章

  1. 机器学习常用算法特点概述
  2. STL 之 list 容器详解
  3. 深度学习100例 | 第32天-GRU模型:算法生成小说
  4. mingw+libpython安装记录
  5. 【2018.3.10】模拟赛之二-ssl2575 给出字符串【字符串】
  6. 清华大学上海交大,复制粘贴般的优秀!
  7. 编译安装libmemcached库报错
  8. 计算机一直显示配置更新开不了机怎么办,电脑开机出现配置更新怎么办
  9. Cognitive Surplus 认知盈余
  10. ppc手机用蓝牙和电脑同步上网设置教程
  11. JUnit学习笔记6---用stub进行粗粒度测试
  12. 四十一、Fluent初学者学习流程
  13. 那点你不知道的XHtml(Xml+Html)语法基础(DTD、XSD)
  14. DAVIS2016+Matlab+Win10使用指南
  15. 网络安全运营能力建设
  16. 日历控件修改的JS代码
  17. 西瓜书课后题——第四章(决策树)
  18. vue-cli4 + cordova扫描二维码
  19. 提高信心的十个方法,助你考研坚持到底!
  20. 数值分析-题目3-龙贝格和高斯求解牛顿迭代节点

热门文章

  1. [乐意黎]2016中级会计师考试《财务管理》真题及答案-第一批(9.10-9.11)
  2. React Native 中使用图标
  3. Self-supervised Heterogeneous Graph Neural Network with Co-contrastive Learning 论文阅读
  4. 阿里云服务器安装code-server实现ipad编程、浏览器编程
  5. 关于SCN引起DBLINK的问题解决方法说明--打补丁
  6. 我的PCB设计经验——奥研电子整理
  7. linux下对SD卡分区
  8. 详解深度学习中的梯度消失、爆炸原因及其解决方法
  9. 快递物流行业总结(一)中国快递行业生命周期理论
  10. 5年磨一剑|优酷Android包瘦身治理思路全解