PAT 甲級 1013筆記 測試點0 2未通過

2021-09-29 00:20:39 字數 1938 閱讀 9637

1. 原題參照pat官網

戰爭中非常重要的是讓所有的城市被高速公路連線起來,如果乙個城市被敵人占領,所有來自/通往這個城市的高速公路都會被截斷關閉。我們必須立即知道,如果我們需要保持所有的高速公路能連線剩下全部的城市,給地圖上所有有剩餘高速公路的城市做標記,你需要迅速告知需要補修幾條高速公路。

比如,如果我們有三個城市和兩條高速公路連線city1-city2 和city1-city3。那麼如果city1被敵人佔據,我們必須再修一條高速公路city2-city3。

輸入:每個輸入有乙個測試用例,每個測試用例第一行有3個數字n(<1000),m和k,分別為城市總數,剩餘高鐵數量,以及多少城市需要檢查。之後會有m行列出,每行用兩個整數描述一條高速公路,是這條高速公路連線的城市,這個城市是1到n的數字,最後,有一行包含k個數字,表示我們concern關注的城市。

輸出:每個k城市,若該城市消失了,我們需要修復幾條高速公路。

思路:連通圖問題

建立連通圖,然後對每個關注的結點,如果刪除該節點及其相連的線,可以形成n個連通圖,需要建立n-1條公路即可。

2. 生詞記錄

3. 知識點【& question】

#include

#include

#include

#include

using

namespace std;

void

dfs(vector<

bool

>

&visit, vectorbool

>>

&e,int index,

int nokey)}}

intmain()

for(

int i =

0; i < m; i++

)for

(int j =

0; j < k; j++

)///遍歷查詢關心的節點值

} concern[j]

= caculate-1;

}for

(int j =

0; j < k; j++

)return0;

}

4. **record

這個時候就要屈服於網上大神們的思路而放棄自己的,哭哭tat ! ! !

啊啊啊啊啊啊啊也是遇到關心的點就拒絕訪問,不用考慮跳過,直接把visit[concern [ i ] ]置為true,就可以了,但是我的為啥錯捏,為啥捏,我還是不理解。

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

#define maxsize 30

void

dfs(vector<

bool

>

&visit, vectorbool

>>

&e,int index)}}

intmain()

for(

int i =

0; i < m; i++

)for

(int i =

0; i < k; i++

)for

(int i =

0; i < k; i++

)int cnt =0;

//計算圖的連通分量

visit[concern[i]]=

true

;for

(int j =

1; j <= n; j++)}

if(i < k -

1) cout << cnt -

1<< endl;

else cout << cnt -1;

}return0;

}

PAT甲級1021題,部分測試點無法通過

include include include namespace pata1021 while v father v return ori void unionset int s1,int s2 void init int calblocks for int i 1 i n i return bl...

PAT乙級1013 數素數(C語言),測試點4

令 p i 表示第 i 個素數。現任給兩個正整數 m n 10 4 請輸出 p m 到 p n 的所有素數。輸入格式 輸入在一行中給出 m 和 n,其間以空格分隔。輸出格式 輸出從 p m 到 p n 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。輸入樣例 5 27 ...

PAT甲級 A1048 測試點1 未通過解決方法

提交 僅有測試點1未通過,建議測試以下用例 input 5 15 1 16 15 12 20ouput right no solution若使用標記陣列記錄數字出現次數,且在迴圈中不對標記陣列中大於總錢數的值進行處理,則有可能輸出錯誤 20 5修改後的 未優化 include includeint ...