题面

这一天小 K 到附近的山上去慢跑,这座山上有 N 个凉亭,简单地编号为 1到 N(山顶的凉亭编号为 N,山底的凉亭编号为 1)。有趣的是,如果凉亭 i 和凉亭 j 满足 i<j,那么凉亭 j 的海拔高度就大于凉亭 i 的海拔高度。这些凉亭中存在一些道路,连接两个海拔不同的凉亭,穿过一条道路需要花一定的时间。但这里还有一个十分诡异的事件,这里存在一些特殊道路。从这些道路经过 小 K 可以回到过去,也就是说小 K 需要花的时间为负值。通过这些道路,小 K 可以花较短的时间跑完他需要跑的路程。这样他就可以节约下许多时间,回到机房刷水题。小 K 想从凉亭 1 跑到凉亭 N 去,但他不想走下坡路,也就是说他想要走一条海拔递增的路径,因为 小 K 始终认为递增的东西是具有美感的。小 K 他想知道他最少需要花多少时间就可以从山底的凉亭到达山顶的凉亭?有一点需要注意,小 K 到达山顶的凉亭的时间可能会小于他出发的时间,这就意味着他穿越了时空。这是一件多么美妙的事,于是 小 K 也想知道他是否能穿越时空。他把这个任务交给了你,他希望你能告诉他最少需要花多少时间才能到达山顶,同时你也需要告诉他,他是否能穿越时空。

分析

最短路 水题 判的时候加一个条件

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cmath>
using  namespace std;
#define N 100100
#define INF 0x7fffffff
int first[N],d[N],vis[N];
int  n,ml,md,cnt;
struct email
{int u,v,w;int nxt;
}e[N*40];
priority_queue<int,vector<int>,greater<int> >q;
inline void add(int u,int v,int w)
{e[++cnt].nxt=first[u];first[u]=cnt;e[cnt].v=v;e[cnt].u=u;e[cnt].w=w;
}inline void read(int &x)
{x=0;int f=1;char ch=getchar();while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}x=x*f;
}void dijkstra(int x)
{for(int i=1;i<=n;i++)d[i]=INF;q.push(x);d[x]=0;while(!q.empty()){int u=q.top();q.pop();if(vis[u])continue;vis[u]=1;for(int i=first[u];i;i=e[i].nxt){int v=e[i].v,w=e[i].w;if(d[v]>d[u]+w&&u<v){d[v]=d[u]+w;q.push(v);}}}
}int main()
{read(n);read(ml);read(md);for(int i=1;i<=ml;i++){int u,v,w;read(u);read(v);read(w);add(u,v,w);add(v,u,w);}for(int i=1;i<=md;i++){int u,v,w;read(u);read(v);read(w);add(u,v,-w);add(v,u,-w);}dijkstra(1);printf("%d\n",d[n]);if(d[n]>=0)printf("NO");else printf("YES");return 0;
}

转载于:https://www.cnblogs.com/NSD-email0820/p/9570244.html

【NOIP模拟】慢跑问题相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

  5. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  6. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  7. NOIP模拟(10.22)T2 杆子的排列

    杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...

  8. Noip 模拟练习5

    Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...

  9. NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望

    NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件 ...

  10. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

最新文章

  1. 160630、五句话搞定JavaScript作用域
  2. python:PATH、PYTHONPATH 和 sys.path 的区别
  3. 【技术应用】【informix】 c++版 数据库通用操作
  4. C/C++中的复数介绍
  5. java异常处理试题答案_Java 面试题和答案 - (下)
  6. 牛客题霸 [矩阵查找] C++题解/答案
  7. 服务器性能和活动监视
  8. 8.使用Exists监控ZNode的三大Change事件
  9. C#的多线程机制探索7
  10. 百度开源超级链技术方案!
  11. ascll编码表图片_ASCLL编码表
  12. 偶数求和打分 c语言acm,杭州电子科技大学ACM2015-偶数求和-解题思路(accept)
  13. javascript实现图片轮播_Node.js实现将文字与图片合成技巧
  14. 介绍 PostgreSql 两个有用的比较操作
  15. 营业执照注册编码 15与18位的java实现
  16. MyISAM 与 InnoDB
  17. 天龙八部元宝兑换代码 1
  18. 华数机器人旋转编程_用户手册-华数机器人.PDF
  19. 作业盒子端AndrOid,作业盒子小学老师端
  20. 2.Cairo图形库-定义

热门文章

  1. 2019牛客多校第8场
  2. 动态规划-背包问题(易懂)
  3. webbrowser点击网页内部链接阻止从IE打开
  4. 游鸿明歌曲白色恋人浅析
  5. 泛微oa流程表单之流程阻止提交
  6. html网页提速,HTML-加速、再加速(上)
  7. 系统安装部署软件方法
  8. 国美易卡利用数据挖掘技术,国美易卡精准分析决策
  9. Java动态代理的理解
  10. Python学习足迹