節約經費(dij)

2021-06-22 05:44:47 字數 1359 閱讀 9509

時間限制: 1 sec  

記憶體限制: 128 mb

提交: 2  

解決: 0 [

提交][

狀態][

論壇]n&b 大學是一所世界頂尖的大學,但是它有乙個奇怪的規定那就是它只在每個城市招一名學生!   這不,高考的日子又快到了。n&b 大學管理層就已在策劃招生工作的相關事宜了。n&b 大學以前每年都會為每個學生準備一張飛機票,以使學生更舒適的來到學校報到。但是由於受到經濟危機的影響,今年他們不得不考慮節約更多的經費。但是他們又不想破壞給學生機票的這個慣例。經過 n&b 大學財務部的研究發現,在學生來學校的過程中,轉機可能會可節約機票的費用。如 n&b 大學在 c 市,學生 s 在 b 市,b 市到 c 市的機票為 10000 元,但是 b 到 d 市的機票為 1000 元,d 到 c 市的機票為 2000 元,如果轉機先從 b 到 d 再從 d 到 c 這樣就比直接來 c 市節省了 7000 元!   現在己知 n&b 大學今年招生共 n(0 < n ≤ 1000)名,分別分布在n個城市(編號從 1 到 n(第 n 個學生在編號為 n 的城市),n&b 大學位於編號為t的城市(t ≤ n,與 n&b 大學在同一城市的學生,學校不需要為其購買機票),航空公司共有 m(m ≤ 100000)趟航班,每趟航班都連線兩個城市,航班為單向的,且費用己知(0 < 費用 ≤ 100)。問 n&b 大學至少需要付出多少費用為新生購買機票?

第一行三個整數 n m t,表示共招收 n 名學生,共有 m 趟航班,n&b 大學坐落在 t 市。   以下 m 行每行包括三個整數 a b c,表示一趟從編號為 a 的城市到編號為 b 的城市航班費用為 c 元。輸入資料保證所有學生都能通過航班到達學校所在城市。

n&b 大學為新生購買機票所需的最小花費。

3 2 21 2 1003 2 100

200

就是求最短路徑了,直接dij演算法求解就好了

#include#includeusing namespace std;

int g[1005][1005];

int dis[1005];

int vis[1005];

int n,m,t;

#define mm 9999999

void dij()

vis[v]=1;

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

if(dis[j]>dis[v]+g[j][v])

dis[j]=dis[v]+g[j][v];

}}int main()

dij();

int ans=0;

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

ans+=dis[i];

cout<}

return 0;

}

工作經費的開支範圍 業主委員會經費收支制度

業委會經費收支制度 為規範收支管理 增強財務收支透明度,根據 業主大會和業主委員會指導規則 規定,就業委會經費收支制定如下制度,經業主大會表決通過後執行 1.業主大會和業委會開展工作的經費按規定由全體業主承擔。業委會可以委託利用小區公共區域 公共設施裝置進行 包括但不限於 設定廣告等經營,所得收益屬...

dij最短路 變形

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。...

dij與prim演算法

兩種演算法本質是相同的。都是從某乙個點開始進行延伸,不斷更新乙個dis值,直到所有的點都被遍歷到,從而求出乙個最短路或者是乙個樹的邊權的最小總和。樸素演算法都是n 2,都可以採用堆優化處理,降低複雜度到mlogn.但是在一張完全圖上跑,此時m n 2,樸素演算法反而快一些。而且常數小。相比較於spf...