題目描述
某重要人物p要尋訪城市c的g個地方,由於該人物非常重要,交警打算對人物p行走的街道進行臨時封道(不准普通市民進入,但如果在封道前進入的可以繼續行走,也可以正常出去)。當人物p進入這條街道之前和p走出這條街道之後,普通市民都可以正常進入該街道。
比如,p在第10分鐘期間進入街道x,並要x街道上行走5分鐘,則在第10、11、12、13、14分鐘期間,普通市民不可以進入x街道,市民可以在第9分鐘之前(含第9分鐘)進入,也可以在第15分鐘之後(含第15分鐘)進入。
人物p尋訪k分鐘後,有一市民s打算從城市的a處到達b處,請程式設計計算p從a到b的最少用時。注意:市民s在行走的過程中某條街道可以走,但為了用更短的時間,可以選擇等待!
輸入
共m+3行。
第1行2個整數n 和 m (2 ≤ n ≤ 1000, 2 ≤ m ≤ 10 000),分別表示城市中的結點(即某個地方,從1到n編號)的數量以及街道的數目。
第2行包含4個整數a, b, k 和 g (1≤a,b≤n, 0≤k≤1000, 0≤g≤1000),分別表示:
市民s的出發地
市民s的目的地
市民s是在人物p尋訪k分鐘後開始出發
人物p尋訪的結點(地方)數量
第3行g個整數,表示人物p將要尋訪的g處地方的編號,每一對結點代表了人物p尋訪要經過的街道,每條街道僅走一次。
接下來m行,每行3個整數a, b 和 l(1 ≤ a, b ≤ n, 0 ≤ l ≤ 1000),表示a和b之間有一條需要走l分鐘的街道(假定人物p和市民s行走速度相同)。
輸出
包含1行,表示市民s從a處到達b處的最少用時(單位分鐘)。
樣例輸入
【樣例1】
6 51 6 20 4
5 3 2 4
1 2 2
2 3 8
2 4 3
3 6 10
3 5 15
【樣例2】
8 91 5 5 5
1 2 3 4 5
1 2 8
2 7 4
2 3 10
6 7 40
3 6 5
6 8 3
4 8 4
4 5 5
3 4 23
樣例輸出
【樣例1】
21【樣例2】
40提示
40%的資料保證2 ≤ n ≤ 550且2 ≤ m ≤ 4000
100%的資料保證2 ≤ n ≤ 1000且2 ≤ m ≤ 10000
思路
根據題意,找封閉路段的每乙個時間間隔,在考慮時間間隔的基礎上跑最短路即可,注意雙向邊同時建立時間間隔
**實現
#pragma gcc optimize(3,"ofast","inline")
#include
using
namespace std;
typedef
long
long ll;
typedef
unsigned
long
long ull;
const
int n=
1005
;const
int m=
10005
;const
int inf=
0x3f3f3f
;const ull sed=31;
const ll mod=
1e9+7;
const
double eps=
1e-9
;typedef pair<
int,
int>p;
typedef pair<
double
,double
>pd;
struct qnode
bool
operator
<
(const qnode &r)
const};
struct node
e[m<<1]
;int head[n]
,cnt,n,m;
int a,b,k,g;
int w[n]
;int dis[n]
;p vst[m<<1]
;bool vis[n]
;void
add(
int u,
int v,
int w)
void
dji(
int s)
priority_queueque;
que.
push
(qnode
(s,k));
dis[s]
=k;while
(!que.
empty()
)}else}}
}}void
dfs(
int x,
int tot,
int t)}}
intmain()
dfs(w[0]
,0,0
);dji(a)
;printf
("%d\n"
,dis[b]
-dis[a]);
return0;
}
前幾年系列2 評主要人物
渣渣小評2 評 天地英雄 主要人物 看電影 褒揚的心態 好電影 好心情 天地英雄 2003 10 9 沙漠,海子,峽谷,還有那座孤城。長弓,冷箭,彎刀,還有那把胡琴。刀手,駱駝,駿馬,還有那頭驢 乙個強大的帝國,一條富饒的絲綢路,乙個本該屬於這裡的將軍,乙個不該屬於這裡的遊子,命運成就了悲壯。天地英...
最短路 最短路徑問題
題目描述 平面上有n個點 n 100 每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點直線的距離。現在的任務是找出從一點到另一點之間的最短路徑。input 共有n m 3行,其中 第一行為乙個整數n。第2行...
最短路徑演算法 最短路
在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 100,m 10000 n...