2018.10.29-dtoj-4007-飞天鼠小E
(题目蜜汁复制不下来...直接进入正题!然后我就会被发现我的题解巨短无比....羞愧)
算法标签:dijk
思路:
这题的难点在于高度的控制,其实因为他时间消耗都只会下降,所以当我们走到一定步数之后,其实每一段都是重复上升再走到0,周而复始。根据这个条件,我们可以根据他所走的权值,看出我们当前的高度,于是我们就可以根据权值推出高度,剩下的就是正常的dijk寻找最短路了!
以下代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
#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相关推荐
- 10天精读掌握:计算机组成与设计(COAD:Patterson and Hennessy) (第4天 2018/10.29)
10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第4天 2018/10.29 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 5. ...
- 【一周头条盘点】中国软件网(2018.10.29~2018.11.2)
每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 一周热点 2018年第二季度SaaS公有云市场研究报告 SEG发布了"2018年第二季度SaaS公共市场报告&qu ...
- 《惢客创业日记》2018.10.29(周一) 中国只有一个雷军,却有千万个中小企业
今天抽时间看了小米mix3的故宫发布会的视频回放.虽然,健康和时间都不允许我把精力花在这场发布会上,但自己还是有点忍不住,就利用晚上时间边走路锻炼身体.边看发布会. 从看罗辑思维<时间的朋友&g ...
- ssl提高组周一备考赛【2018.10.29】
前言 想去德育基地- 成绩 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 111 2017myself2017myself20 ...
- 2018.10.29 bzoj1023: [SHOI2008]cactus仙人掌图(仙人掌+单调队列优化dp)
传送门 求仙人掌的直径. 感觉不是很难. 分点在环上面和不在环上分类讨论. 不在环上直接树形dpdpdp. 然后如果在环上讨论一波. 首先对环的祖先有贡献的只有环上dfsdfsdfs序最小的点. 对答 ...
- 【比赛报告】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 ...
- 日常作业2018.12.29
作业 1.赌博游戏(循环) package com.play;import java.util.Scanner; /*** 赌博游戏2.0升级版* @author ZZH* 2018.12.29*/ ...
- DP基本问题总结(2018.5.29 2018.6.9 2018.8.9更新)
参考文献: [1]https://segmentfault.com/a/1190000006325321 [2]https://blog.csdn.net/q623702748/article/det ...
- ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。
ARM的存储器映射与存储器重映射[转载]2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来. arm处理器本身所产生的地址为虚拟地址,每一个arm芯片内都 ...
- 【不忘初心】Win10_20H2_2009_19042.572_X64_六合一_[纯净精简版](2020.10.29)
母版来自MSDN WIN10_20H2.19042.508,集成补到19041.572,20H2相比1909 2004版本要稳定很多,精简起来也比较顺手,相对来说体积比之前的要小一些,精简方法基本上 ...
最新文章
- 机器学习常用算法特点概述
- STL 之 list 容器详解
- 深度学习100例 | 第32天-GRU模型:算法生成小说
- mingw+libpython安装记录
- 【2018.3.10】模拟赛之二-ssl2575 给出字符串【字符串】
- 清华大学上海交大,复制粘贴般的优秀!
- 编译安装libmemcached库报错
- 计算机一直显示配置更新开不了机怎么办,电脑开机出现配置更新怎么办
- Cognitive Surplus 认知盈余
- ppc手机用蓝牙和电脑同步上网设置教程
- JUnit学习笔记6---用stub进行粗粒度测试
- 四十一、Fluent初学者学习流程
- 那点你不知道的XHtml(Xml+Html)语法基础(DTD、XSD)
- DAVIS2016+Matlab+Win10使用指南
- 网络安全运营能力建设
- 日历控件修改的JS代码
- 西瓜书课后题——第四章(决策树)
- vue-cli4 + cordova扫描二维码
- 提高信心的十个方法,助你考研坚持到底!
- 数值分析-题目3-龙贝格和高斯求解牛顿迭代节点
热门文章
- [乐意黎]2016中级会计师考试《财务管理》真题及答案-第一批(9.10-9.11)
- React Native 中使用图标
- Self-supervised Heterogeneous Graph Neural Network with Co-contrastive Learning 论文阅读
- 阿里云服务器安装code-server实现ipad编程、浏览器编程
- 关于SCN引起DBLINK的问题解决方法说明--打补丁
- 我的PCB设计经验——奥研电子整理
- linux下对SD卡分区
- 详解深度学习中的梯度消失、爆炸原因及其解决方法
- 快递物流行业总结(一)中国快递行业生命周期理论
- 5年磨一剑|优酷Android包瘦身治理思路全解