codevs 3336 電話網路

2021-10-08 03:54:27 字數 1619 閱讀 6304

時間限制: 1 s

空間限制: 32000 kb

題目等級 : ** gold

description

由於**使得連線汶川縣城**線全部損壞,假如你是負責將**線接到震中汶川縣城的負責人,汶川縣城周圍分布著n(1≤n≤1,000)根按 1..n 順次編號的廢棄的**線桿,任意兩根**線桿間都沒有**線相連。一共p(1≤p≤10,000)對**線桿間可以拉**線,其餘的由於**使得無法被連線。

第i對**線桿的兩個端點分別為ai,bi,它們間的距離為li(1≤li≤1,000,000)。資料中保證每對(ai,bi)最多隻出現1次。編號為1的**線桿已經接人了全國的**網路,整個縣城的**線全都連到了編號為n的**線桿上。也就是說,你的任務僅僅是找一條將1號和n號**線桿連起來的路徑,其餘的**線桿並不一定要連人**網路。

電信公司決定支援災區免費為汶川縣城鏈結k(0≤k請你計算一下,將**線引到震中汶川縣城最少需要在**線上花多少錢?

輸入描述 

input description

輸入檔案的第一行包含三個用空格隔開的整數:n,p和k。

第二行到第p+1行:每行分別都為空格隔開的整數:ai,bi和li。

輸出描述 

output description

輸出檔案中僅包含乙個整數,表示在這項工程上的最小支出。如果任務不可能完成,則輸出-1。

樣例輸入 

sample input

5 7 1

1 2 5

3 1 4

2 4 8

3 2 3

5 2 9

3 4 7

4 5 6

樣例輸出 

sample output

1 #include2 #include3 #include4 #include5 

6 #define n 1000000+20

7 8 using namespace std;

9 10 int n,m,k,num,head[n];

11 bool inq[n];

12 int dis[n];

13 struct node

14 a[n];

17 18 void add_tree(int,int,int);

19 void spfa(int);

20 void init();

21 22 int main()

23

37 else

38 l=mid+1;

39 }

40 printf("%d",ans);

41 return 0;

42 }

43 44 void add_tree(int from,int to,int ll)

45

53 54 void spfa(int s)

55

80 }

81 }

82

83 }

84 }

85 86 void init()

87

96 }

公共交換電話網路

如果同一公司或者組織的兩台計算機相距很近,現在它們需要進行通訊,則最容易的做法是,在它們之間連線一條電纜。lan就是這樣工作的。然而,當距離很遠,或者有很多台計算機,或者這條電纜必須要經過一條公共的道路或者其他的公共場所的時候,鋪設私有電纜的費用往往是不切實際的。而且,幾乎在所有的國家中,在公共地產...

Usaco2008 Jan 電話網路

一道比較神的樹形dp,恕我太菜,一開始想的是三維的。實際上並不需要三維,只需要用0,1,2表示即可 d p u 0 dp u 0 dp u 0 表示當前點不放,他的某乙個兒子覆蓋他的代價 d p u 1 dp u 1 dp u 1 表示當前點放,他的子樹也被覆蓋的代價 d p u 2 dp u 2 ...

Usaco2008 Jan 電話網路

第2.n行 每行為2個用空格隔開的整數a b,為兩塊相鄰草地的編號 5 1 35 2 4 33 5 輸入說明 farmer john的農場中有5塊草地 草地1和草地3相鄰,草地5和草地2 草地 4和草地3,草地3和草地5也是如此。更形象一些,草地間的位置關係大體如下 或是其他類似的形狀 輸出2 輸出...