小Biu看電影

2022-05-27 13:27:13 字數 1454 閱讀 9229

【題目描述】

無聊的小biu來到了電影之城,他發現這裡有 \(n\) 個電影院,而且每個電影院的電影票價是不同的,有一些電影院之間有雙向聯通的道路,想要通過某條道路需要一定的花費,小biu想知道,他以每乙個電影院為起點(當然也可以原地不動),最少需要多少花費可以看到電影。

【輸入格式】

第 1 行:兩個整數 \(n,m\),\(n\) 表示城市中電影院的個數,\(m\) 表示電影院之間的道路總數。(\(1\leq n\leq 100000,1\leq m\leq 300000\))

第 2 行:\(n\) 個正整數,第 \(i\) 個正整數表示在第 \(i\) 個電影院看電影的票價 \(val[i]\)。(\(1\leq val[i]\leq 1000\))

第 3~m+2 行:每行三個正整數,\(u,v,w\),表示電影院 \(u\) 與電影院 \(v\) 之間有一條花費為 \(w\) 的道路。(\(1\leq u,v\leq n,1\leq w\leq 1000\))

【輸出格式】

輸出 \(n\) 行每行乙個正整數。

第 \(i\) 行輸出的正整數表示從第 \(i\) 個電影院出發,最少需要多少花費可以看到電影。

看上去好像蜃難

其實似乎也挺簡單

把 從乙個電影院出發走到任意乙個電影院看電影 倒過來 理解成 在任意乙個電影院看完電影然後回到指定電影院

然後就可以想到建立乙個虛點 將虛點與每個電影院之間連一條權為\(val[i]\)(即票價)的邊 然後從\(i\)影院出發看到電影的最小代價實際上就是虛點到\(i\)的最短路

然後跑一遍dijkstra就行了

#include #include #include using namespace std;

typedef long long ll;

ll read()

while (ch <= '9' && ch >= '0')

return ret * flag;

}ll n, m, val[1000005], ans;

ll head[1000005], pre[1000005], to[1000005], dis[1000005], sz;

ll dist[1000005];

bool vis[100005];

void insert(ll u, ll v, ll w)

void dijkstra(ll st)

} }}int main()

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

ans = 0x7fffffff;

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

dist[0] = 0;

dijkstra(0);

for (int i = 1; i <= n; i++) printf("%lld\n", dist[i]);

return 0;

}

看電影隨筆

春節在家裡呆了乙個多月,比寒假的時間還長。大部分時間都宅在家裡,每天大魚大肉吃喝完就 躺著,不是看書就是玩玩ipad聽 看電影。由於缺乏鍛鍊,估計這個月長胖了十幾斤,現在壓力非常大,回去後一定要堅持每天鍛鍊 了。人無聊了就要找點事做打發時間,這幾天躺在床上看了幾部電影。看電影和看書有相似的地方,乙個...

看電影881有感

一直生活在東北,所了解的風土人情都是關東文化。對於中華其它文化元素了解的並不多。看881後,才感受到,原來福建歌也這樣好聽。一首首動聽的歌竄插在劇情之中,隨著劇情的發展撥動你的心弦,讓人為之感動。一人一半 感情不散 一人一素故 感情才會久 時光累計 安靜的淚滴 一心去追 愛那麼可貴 這樣的人 這樣地...

和女兒看電影

和女兒看電影 2008 09 30 上個禮拜,老婆要上班,我放假,女兒只好有我帶。於是便帶她去 新城市廣場看電影。畫皮自然是不能看的,三維電影要帶眼鏡,小孩 太小,也不合適,能看的也就是 李公尺的猜想 了。電影的風格有點另類,我錯過了開頭,可是看到了結局。女兒看一會,睡一會,估計對她而言,就是湊熱鬧...