题目描述:https://www.luogu.org/problemnew/show/U38181

读完题之后,我门发现这是一道裸的最短路,写个我们大家都喜欢的SPFA就可以秒过

考场上的思维自以为没有什么问题,随手写完就交了

考完一看发现挂了,一个点都没过,就有点蒙,然后发现是Re

下面的这行代码大家一定要记住(以后都这么写)

long long main()

这个悲惨的故事大家一定要铭记在心,然而你以为这就是事情的全部吗?

不不不,我国服被卡王今天就要卡死在这里

我们会发现,这道题目在最后有一个分类讨论,就是有可能Harry一个人去两个房间会更快(主角光环就是nb)

因为是无向图,所以天真的我认为只用判断一次,然而我还是太年轻,Harry先去不同的房间好肥的时间可能不同(出题人太巨了)

然后除了这些也就没有什么思维难度了,基本上是个模板题

下面给出代码:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
using namespace std;
inline long long min(long long a,long long b){return a<b?a:b;}
inline long long max(long long a,long long b){return a>b?a:b;}
inline long long rd()
{long long x=0,f=1;char c=getchar();for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;for(;isdigit(c);c=getchar()) x=x*10+c-'0';return x*f;
}
inline void write(long long x)
{if(x<0) putchar('-'),x=-x;if(x>9) write(x/10);putchar(x%10+'0');
}
long long n,m,k;
long long head[100006],to[1000006],v[1000006],nxt[1000006];
long long total=0;
long long dis[100006];
long long dis2[100006];
long long book[100006];
void add(long long x,long long y,long long z){total++;to[total]=y;v[total]=z;nxt[total]=head[x];head[x]=total;return ;
}
deque <long long> q;
long long vis[100006];
void spfa_r(long long x){//SPFA板子 if(book[x]) return ;memset(dis,127,sizeof(dis));memset(vis,0,sizeof(vis));q.push_back(x);vis[x]=1;dis[x]=0;while(!q.empty()){long long h=q.front();q.pop_front();vis[h]=0;for(long long e=head[h];e;e=nxt[e]){if(book[to[e]]) continue;if(dis[to[e]]>dis[h]+v[e]){dis[to[e]]=dis[h]+v[e];if(!vis[to[e]]){if(!q.empty()&&dis[to[e]]<=dis[q.front()]) q.push_front(to[e]);else q.push_back(to[e]);vis[to[e]]=1;}}}}return ;
}
void spfa_h(long long x){memset(dis2,127,sizeof(dis2));memset(vis,0,sizeof(vis));q.push_back(x);vis[x]=1;dis2[x]=0;while(!q.empty()){long long h=q.front();q.pop_front();vis[h]=0;for(long long e=head[h];e;e=nxt[e]){if(dis2[to[e]]>dis2[h]+v[e]){dis2[to[e]]=dis2[h]+v[e];if(!vis[to[e]]){if(!q.empty()&&dis2[to[e]]<=dis2[q.front()]) q.push_front(to[e]);else q.push_back(to[e]);vis[to[e]]=1;}}}}return ;
}
int main()
{n=rd(),m=rd(),k=rd();for(long long i=1;i<=k;i++){long long x=rd();book[x]=1;}for(long long i=1;i<=m;i++){long long x=rd(),y=rd(),z=rd();add(x,y,z);add(y,x,z);}long long l=rd(),r=rd();spfa_r(1);//因为有的房间只有Harry能去 spfa_h(1);//所以要分开写(滑稽) long long ans=min(max(dis2[l],dis[r]),max(dis2[r],dis[l]));//两个人去的房间取最优(在这里卡了半天) long long set=dis2[l];long long sett=dis2[r];spfa_h(l);//Harry先从l点开始 ans=min(ans,set+dis2[r]);spfa_h(r);//刚才把这行写在了上面 ans=min(ans,sett+dis2[l]);printf("%lld",ans);return 0;
}

转载于:https://www.cnblogs.com/WWHHTT/p/9696405.html

NOIP2018原创模拟赛DAY1 密室相关推荐

  1. 【洛谷】NOIP2018原创模拟赛DAY1解题报告

    点此进入比赛 T1:小凯的数字 题意:给定q个l,r,求l(l+1)(l+2)...(r-1)r模9的结果 很显然,这是道考验数(运)学(气)的题目 结论:输出\((l+r)*(r-l+1)\over ...

  2. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  3. 洛谷noip 模拟赛 day1 T3

    T7983 大芳的逆行板载 题目背景 大芳有一个不太好的习惯:在车里养青蛙.青蛙在一个n厘米(11n毫米s)的Van♂杆子上跳来跳去.她时常盯着青蛙看,以至于突然逆行不得不开始躲交叉弹.有一天他突发奇 ...

  4. 模拟赛DAY1 T1大美江湖

    这就是一个模拟题,注意1234分别对应左右上下横坐标和纵坐标的判断就好了 题解: 需要注意的是,向上取整ceil函数是对于一个double值返回一个double值,也就是说在ceil里面的类型一定要是 ...

  5. 2017.10.26模拟赛day1

    -- T1为爱追寻 问题描述 历经了半年的停课之后,紫萱学姐回到了陌生又熟悉的班里,她想找到学长的位置.于是她决定采用一种高效率的寻找方法:瞎找法. 我们将学姐的班级视为一个二维平面,每个整数坐标对应 ...

  6. NOIP复习模拟赛day1

    首先先bb一下day1的题目名字怎么都这么鬼才......(连起来叫两情若是长久时) 1.两情 (sweethearts.pas/c/cpp) [问题描述]小 W 将要去和小 K 约会啦!但聪(ao) ...

  7. 【CYH-02】noip2018数论模拟赛:比赛通知栏

    鉴于公开赛有时可能无法更改比赛描述呢... 所以我们准备在这里(和团队宣言里)发布一些比赛公告. 请及时关注

  8. 【CYH-02】noip2018数论模拟赛:赛后题解

    1.小奔的矩阵 2.大奔的方案 3.小奔与不等四边形 4.小奔的方案 当然本次比赛肯定难度不会仅限于此啦!后续还会--

  9. 模拟赛Day1(20200203) T1 垃圾题【分类讨论+枚举+dp解决等价匹配问题】

    题目描述: 题目分析: 看到bbb的长度为5,可以感觉到这题就是在锻炼强大合理的分类讨论能力. 首先看bi≤2b_i\le2bi​≤2的部分分,即只有两种数字. 枚举这两种数为x,yx,yx,y,数量 ...

最新文章

  1. 大数据时代千帆竞发,三代测序激流勇进
  2. 比特币现金驱动的社交媒体平台备忘录继续蓬勃发展
  3. flash写保护原理_一种基于flash写保护的防止flash被意外篡改的方法与流程
  4. Console控制台的正确打开方式
  5. SQL Server 2005 SP2发布了,开发人员怎么办?
  6. Hybris Storefront里如何给用户绑定手机号
  7. ubuntu-server 16.04 启用root用户的方法
  8. [bug]小米部分机型(5x、mix2)中,文字/背景闪现然后消失
  9. java gc检测工具_Java自带的性能监测工具之jstat
  10. com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required, profile > GL2 reques
  11. 测试环境的搭建和配置
  12. 使用css控制gridview控件的样式,GridView 样式美化及应用.doc
  13. 怎么把图片弄成logo_怎么把图片上的logo做出来??
  14. 计算机指数函数表示法,指数函数e^x的快速计算方法
  15. 大哥都是从小弟做起的
  16. 话说多球 --  乒在民间
  17. php接口统计,EKL PHP 调取_search接口查询登录统计
  18. 计算机网络矢量算法三个更新原则,距离矢量路由算法
  19. 系统架构设计-安全篇
  20. ie8与ie9的区别

热门文章

  1. c语言余一个负数_C语言负数的除法和求余运算
  2. ruoyi 前后端分离 增加手机号登录
  3. Java实现阿里云OCR的身份证识别等功能具体流程(包括android思路)
  4. API接口幂等性设计
  5. CLRS 5.3随机算法
  6. 纯C实现的JPEG压缩算法
  7. 某音数据获取策略及实现(1)
  8. 一招教你修复Win7更新KB3146706后的蓝屏死机
  9. 【mind+】机器人对话互动游戏编程
  10. ms10-002“极光漏洞”漏洞复现