傳送門
考慮暴力 , 我們可以一次一次短邊 , 然後判斷連通性 , 顯然是o(mn)的
對於不容易判斷刪除後的連通性的 , 我們轉換為倒序插入
我們倒著插入 , 然後記錄當前點與1連通的時刻
發現乙個點的答案就是它或它的祖先與1連通的時間的最小值 , find的時候更新一下即可
#include#define n 400050
using namespace std;
int n,m,ch[n][2],q[n][2];
int fa[n],ans[n],flag[n][2];
int find(int x)
int find(int x)
void merge(int x,int y,int val)
}int main()
for(int i=1;i<=m;i++)
for(int i=1;i<=n;i++)
for(int i=1;i<=n;i++) ans[i]=m+1;
for(int i=m;i>=1;i--)
for(int i=1;i<=n;i++) return 0;
}
並查集 並查集
本文參考了 挑戰程式設計競賽 和jennica的github題解 陣列版 int parent max n int rank max n void init int n int find int x else void union int x,int y else 結構體版 struct node ...
並查集模板題 P3367 模板 並查集
如題,現在有乙個並查集,你需要完成合併和查詢操作。第一行包含兩個整數n m,表示共有n個元素和m個操作。接下來m行,每行包含三個整數zi xi yi 當zi 1時,將xi與yi所在的集合合併 當zi 2時,輸出xi與yi是否在同一集合內,是的話輸出y 否則話輸出n 如上,對於每乙個zi 2的操作,都...
並查集入門(普通並查集 帶刪除並查集 關係並查集)
什麼是並查集?通俗易懂的並查集詳解 普通並查集 基礎並查集 例題 題解 how many tables problem description lh boy無聊的時候很喜歡數螞蟻,而且,還給每乙隻小螞蟻編號,通過他長期的觀察和記錄,發現編號為i的螞蟻會和編號為j的螞蟻在一起。現在問題來了,他現在只有...