逃离僵尸岛

【题目描述】

现有N个城市,城市之间有道路相连,一共有M条双向道路,保证没有自环和重边。

现有K个城市已经被僵尸控制,所以不能进入。若某个正常城市到某个僵尸城市的距离不超过S,则称此城市为危险城市。

小A住在1号城市,他想去N号城市避难,这两座城市没有被侵略。白天小A会走一段道路,晚上要住在所处城市。在正常城市需花费P元,而在危险城市,由于安保措施,所以会变贵,为Q元。所有危险城市的住宿花费相同,正常城市也是如此。且在1号城市和N号城市,小A不需要住店。

现询问从1号城市到N号城市所需要的最小花费,数据保证存在路径可以成功逃离。

【输入描述】

第一行输入4个整数N、M、K、S;

第二行输入2个整数P、Q;

接下来K行,每行输入1个整数Ci,表示僵尸控制的城市;

接下来M行,每行输入2个整数Ai、Bi,表示一条无向边。

【输出描述】

输出一个整数表示最低花费。

【输入样例】

13 21 1 1

1000 6000

7

1 2

3 7

2 4

5 8

8 9

2 5

3 4

4 7

9 10

10 11

5 9

7 12

3 6

4 5

1 3

11 12

6 7

8 11

6 13

7 8

12 13

【输出样例】

11000

【数据范围及提示】

样例如图所示:

对于20%数据,N <= 50;

对于100%数据,2 <= N <= 100000,1 <= M <= 200000,0 <= K <= N-2,0 <= S <= 100000,1 <= P < Q <= 100000。

时间: 2024-11-14 08:49:44

逃离僵尸岛的相关文章

AC日记——逃离僵尸岛 洛谷 P3393

逃离僵尸岛 思路: spfa: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 200005 #define maxque 1800056 #define INF 1e12 #define ll long long ll n,m,E[maxque],V[maxque],cnt,

题解——逃离僵尸岛(BFS+最短路+虚拟节点)

题解--逃离僵尸岛(BFS+最短路+虚拟节点) 一道很巧妙的最短路问题,细节也要注意 题面 Description 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入就会被感染TAT...所以不能进入.由其中任意城市经过不超过S条道路就可以到达的别的城市,就是危险城市.换句话说只要某个没有被占城市到某个被占城市不超过s距离,就是危险. 小a住在1号城市,国际

题解 P3393 【逃离僵尸岛】

题解 P3393 [逃离僵尸岛] 题目链接 没错这题就是单元最短路径的裸题. 同时也可以练习一下多源BFS 在处理被占领点周围的"危险点"时我们可以使用bfs,对于k个被占领点一个一个BFS显然太慢没有B格了,所以我们可以多源BFS,也就是第一次就把所有的被占领点压到队列里. 染完色以后处理每个点的权值,危险点的权值设为q,安全点的权值设为p,被占领的点权值设为一个比较大的数. 然后从点1跑最短路径就行了. 总之这是一道有点细节的模板题,要开long long不然玄学错误 代码: /*

洛谷⑨月月赛Round2 P3393逃离僵尸岛[最短路]

题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入就会被感染TAT...所以不能进入.由其中任意城市经过不超过S条道路就可以到达的别的城市,就是危险城市.换句话说只要某个没有被占城市到某个被占城市不超过s距离,就是危险. 小a住在1号城市,国际空港在N号城市,这两座城市没有被侵略.小a走每一段道路(从一个城市直接到达另外一个城市)得花一整个白天,所

洛谷P3393 逃离僵尸岛

题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入就会被感染TAT...所以不能进入.由其中任意城市经过不超过S条道路就可以到达的别的城市,就是危险城市.换句话说只要某个没有被占城市到某个被占城市不超过s距离,就是危险. 小a住在1号城市,国际空港在N号城市,这两座城市没有被侵略.小a走每一段道路(从一个城市直接到达另外一个城市)得花一整个白天,所

P3393 逃离僵尸岛

题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入就会被感染TAT...所以不能进入.由其中任意城市经过不超过S条道路就可以到达的别的城市,就是危险城市.换句话说只要某个没有被占城市到某个被占城市不超过s距离,就是危险. 小a住在1号城市,国际空港在N号城市,这两座城市没有被侵略.小a走每一段道路(从一个城市直接到达另外一个城市)得花一整个白天,所

Luogu P3393 逃离僵尸岛【最短路】By cellur925

题目传送门 题目大意:(其实概括出来也就基本做完了hh)在一张有$n$个点,$m$条边的无向图上,有$k$个点是不能经过的,而与之距离不超过$s$的点,到他们会花费$Q$元,到其他点会花费$p$元,求1到$n$花费的最小价钱. 概括完题意也就非常明了了.我们需要把图上的点分为三类,这部分可以由一个$bfs$求得. void bfs() { while(!q1.empty()) { int u=q1.front().second; int val=q1.front().first;q1.pop()

洛谷⑨月月赛Round2 官方比赛 OI

自评: (完成时间3.5时) 第一题 模拟 虽然A了,代码敲得有点慢 第二题 最短路 第一次敲对了,又考虑数据范围和答案范围,改错了,100分改成42分.QAQ. 第三题 乱搞 80分 还可以(因为没思路啊),不过也有A了的 如果第二题不手贱的话,day1 280分,day2再随便写点,妥妥的一等. 可惜没如果.(也还好不是联赛). P3392 涂国旗 10通过 267提交 题目提供者kkksc03 标签 难度普及- 提交 讨论 题解 最新讨论 快点给钱 这不就是荷兰国旗问题吗 重复题目 题目描

[Noip2007pjT3] 守望者的逃离

描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去.到那时,岛上的所有人都会遇难.守望者的跑步速度为17m/s,以这样的速度是无法逃离荒岛的.庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.守望者的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复.现在已知守望者的魔法初值M,他所在的初始位置与