NYOJ 170 網路的可靠性

2021-08-18 18:24:14 字數 1537 閱讀 6553

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3描述

a公司是全球依靠的網際網路解決方案提供商,也是2023年世博會的高階贊助商。它將提供先進的網路協作技術,展示其」智慧型+互聯「的生活概念,同時為參觀者提供高品質的個人體驗和互動,以」資訊通訊,盡情城市夢想」為主題貫穿。借助奇幻的劇場大螢幕和特效,展現資訊通訊技術的應用前景,通過生動形象的故事,向觀眾展示溝通無限制的未來社會前景。

由於鋪設線路的成本昂貴,a公司希望新增設的光纖線路越少越好。a公司請求dr. kong來完成這個任務輸入

有多組測試資料,以eof為結束標誌。

第一行: n 表示有n個基站

接下來有n-1行:x y 表示第x個基站與第y個基站直連

1<=n<=10000

輸出輸出乙個整數,表示至少需新鋪設的光纖線路數

樣例輸入

8

1 33 2

5 35 4

5 62 7

2 8

樣例輸出

3
分析:本題我一定要好好分析給和我一樣轉不過彎的寶寶們,大佬們寫的本題都很簡單,也沒有具體的分析,三言兩語就過去了,可能相對於別人很簡單吧,然而我就是轉不過彎。

本題讀題感覺有種強連通的感覺,因為沒有學習過,所以不是太了解,而且也怪自己想的太麻煩了。

本題抽象的說已經有 n-1 條線連線了 n 個點,而且每個點最多直接與三個點相連,然後問你,如果有乙個點壞掉了,其他點照樣能夠直接或間接的連通,這樣一來,我們就要考慮度為 1 的點了,你想啊,度不為 1 的點肯定不止與乙個點相連,假設與 a 相連的點有 b 和 c ,如果 b 點壞掉了,是不是 a 還可以從 c 點走呢,這樣說的太抽象了,我們來看圖吧,假設我們拿題中的資料來模擬:

我們能看出圖中用紅筆圈出來的是度為 1 的點,這些度為 1 的點其實是很危險的,假設拿 8 來說,只要 2 壞掉了,那麼它就不能連通了,所以對於這些度為 1 的點,我們可以統計一下,讓他們兩兩相連是最省光纖的,這樣一來,他們也能有退路,因為與之相連的多了乙個點,即使壞掉乙個與之相連點也能連通,所以如果對於度為 1 的點正好是偶數的話,那麼就讓 sum/2,但如果是奇數的話,因為多出了乙個點,它也需要連通,所以我們可以可以任意找個點與它相連,所以哇就是 sum/2+1,嗯,就醬紫的,沒有整明白的同學可以自己下去再模擬一下,關鍵能真正理解題中的意思,明白想考察的東西,要不然你會整的很麻煩不說,思路就是錯的。

#include #include#include#include#includeusing namespace std;

int a[10005];

int main()

{ int n,c,d;

int sum;

while(~scanf("%d",&n))

{memset(a,0,sizeof(a));

sum=0;

for(int i=1;i

NYOJ 170 網路的可靠性

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 a公司是全球依靠的網際網路解決方案提供商,也是2010年世博會的高階贊助商。它將提供先進的網路協作技術,展示其 智慧型 互聯 的生活概念,同時為參觀者提供高品質的個人體驗和互動,以 資訊通訊,盡情城市夢想 為主題貫穿。借助奇幻的...

nyoj 170 網路的可靠性

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 a公司是全球依靠的網際網路解決方案提供商,也是2010年世博會的高階贊助商。它將提供先進的網路協作技術,展示其 智慧型 互聯 的生活概念,同時為參觀者提供高品質的個人體驗和互動,以 資訊通訊,盡情城市夢想 為主題貫穿。借助奇幻的...

NYOJ 170 網路的可靠性

傳送門 原先有一顆最小生成樹,叫你求至少加幾條邊,使得加完後,刪掉任意節點其他點依舊全部連通。思路 把每個度為1的點相互連上就好了!include include include include include include using namespace std define ll long l...