洛谷 P3393 逃離殭屍島

2022-04-04 15:27:37 字數 2130 閱讀 7987

小a住的國家被殭屍侵略了!小a打算逃離到該國唯一的國際空港逃出這個國家。

該國有n個城市,城市之間有道路相連。一共有m條雙向道路。保證沒有自環和重邊。

k個城市已經被殭屍控制了,如果貿然闖入就會被感染tat...所以不能進入。由其中任意城市經過不超過s條道路就可以到達的別的城市,就是危險城市。換句話說只要某個沒有被佔城市到某個被佔城市不超過s距離,就是危險。

小a住在1號城市,國際空港在n號城市,這兩座城市沒有被侵略。小a走每一段道路(從乙個城市直接到達另外乙個城市)得花一整個白天,所以晚上要住旅店。安全的的城市旅館比較便宜要p元,而被危險的城市,旅館要進行安保措施,所以會變貴,為q元。所有危險的城市的住宿**一樣,安全的城市也是。在1號城市和n城市,不需要住店。

小a比較摳門,所以他希望知道從1號城市到n號城市所需要的最小花費。

輸入資料保證存在路徑,可以成功逃離。輸入資料保證他可以逃離成功。

輸入格式:

第一行4個整數(n,m,k,s)

第二行2個整數(p,q)

接下來k行,ci,表示殭屍侵占的城市

接下來m行,ai,bi,表示一條無向邊

輸出格式:

乙個整數表示最低花費

輸入樣例#1: 複製

13 21 1 1

1000 6000

71 2

3 72 4

5 88 9

2 53 4

4 79 10

10 11

5 97 12

3 64 5

1 311 12

6 78 11

6 13

7 812 13

輸出樣例#1: 複製

對於20%資料,n<=50

對於100%資料,2 ≦ n ≦ 100000, 1 ≦ m ≦ 200000, 0 ≦ k ≦ n - 2, 0 ≦ s ≦ 100000

1 ≦ p < q ≦ 100000

思路:題目比較簡單,但因為細節,掛的比較慘。。。

乙個乙個壓進棧和全部一起壓入,第一種方法可能會漏解。

/*

關鍵在於在盡量短的時間內判斷乙個城市是

安全城市還是被危險城市。

最後跑乙個最短路。

陣列邊開兩倍。

首先 開long long

*/#include

#include

#include

#include

#include

#define maxn 100010

using

namespace

std;

intn,m,k,s,p,q,tot;

intc[maxn],vis[maxn];

long

long

cost[maxn],dis[maxn];

struct nond;

int to[maxn*4],net[maxn*4

],head[maxn];

queue

qu;int

read()

while(ch>='

0'&&ch<='9')

return x*f;

}bool

operator

< (const nond &a,const nond &b)

void add(int u,int

v)void

work());}}

}void dijkstra(int

be));

while(!que.empty()));}}

}int

main());

}

for(int i=1;i<=m;i++)

work();

for(int i=1;i<=n;i++)

if(!cost[i]) cost[i]=p;

cost[

1]=cost[n]=0

; dijkstra(1);

printf(

"%lld

",dis[n]);

}

洛谷 P3393 逃離殭屍島

題目描述 小a住的國家被殭屍侵略了!小a打算逃離到該國唯一的國際空港逃出這個國家。該國有n個城市,城市之間有道路相連。一共有m條雙向道路。保證沒有自環和重邊。k個城市已經被殭屍控制了,如果貿然闖入就會被感染tat 所以不能進入。由其中任意城市經過不超過s條道路就可以到達的別的城市,就是危險城市。換句...

洛谷P3393 逃離殭屍島

題目大意 有n個城市m條雙向道路,還有k個已經被殭屍占領的城市,規定 被占領城市不能經過,走不超過s條道路就能到達被占領城市的算危險城市,路費q,其他城市算安全城市,路費p。求從1走到n的最少花費 1和n路費為0 解題思路 我們先跑一遍bfs,求出哪些是危險城市,然後記錄每個城市的路費 貌似int會...

題解 逃離殭屍島 (洛谷P3393)

有 n 個點 m 條邊。現有一些點被感染,其餘的點中與被感染的點距離 leq s 的點是危險的點,點權為 q 與所有被感染的點距離 s 的點為安全的點,點權為 p 1 號店與 n 號點點權始終為 0 求 1 號點走到 n 號點的最小全值 被感染的點不能走 include include includ...