一道很簡單的模板題,先求出該圖的最小生成樹
然後以root為根節點每一層向下遍歷即可
按層向下遍歷需要小心,這裡使用的是鄰接表,生成最小生成樹的時候
是將其看為無向圖,而現在是樹,從上往下意味著只能是單向傳輸
處理好這一點就沒有什麼問題了
**用的是乙個set存mst的各個點,只要遍歷過就將其剝離
#include
#include
#include
#include
#include
#include
#define local
#define see(x) cout << #x << " : " << x << endl;
using namespace std;
int n,m,root;
const
int maxn =
50010
;int father[
50010];
int rank[
50010];
int used[
50010];
struct edge
bool operator <
(edge other)};
vector edges;
vector
int,
int>
>
>
list
(maxn)
;// 存最後的最小生成樹的資料 鄰接表表示
set<
int> pointsset;
// 存最後的節點的集合
void
init()
intfind
(int x)
void
merge
(int x,
int y)
}// 按層遍歷
intgetres
(int root)
} res =
max(res,temp);}
return res;
}int
main()
sort
(edges.
begin()
,edges.
end())
;for
(int i =
0;i < m;i++)}
cout <<
getres
(root)
;return0;
}
CSP 2023年9月 買菜
我的csp 倉庫 由於時間都是正數而且資料規模並不大,所以可以使用陣列表示時間線,所以只需要建立兩個人的時間線陣列,將所有裝車時間區間置為1,其他為0 最後只需要一遍遍歷,兩個都為1的,就是在聊天的時間了 include include include define local using name...
CSP 2023年12月第2題 小明放學
資料型別 必須要是long long型別 所有測試點保證 n 10 5 可能出現的最大的數為10 6 10 5 10 11 int型最大表示的數是2147483647 2 10 9 long long最大儲存範圍是10 18 燈光的順序紅 綠 黃 k 1 紅 k 2 黃 k 3 綠 這個對應順序有點...
CSP 2023年9月第2題 買菜
這題的重點 就是要清楚地分析 兩個時間段之間的對應關係 要清晰的分析出 相交 包含 相離的情況 需要我們在紙上畫圖,這樣比較好分析 其次 要建立結構體陣列 從而來存放讀入的資料 還有就是 結果感覺 大概是10 9 的樣子,因此 把設定為 long long 型別 下面是 原始碼 include us...