題意:
有n種化合物,每種化合物由兩種元素組成。當幾種的化合物數量等於他們所含不同元素的數量時,就會發生**。現在依次給出化合物的組成,當新的化合物與之前的化合物放在一起會發生**時,就不能允許這個化合物放進來。輸出拒絕的次數。
思路:把元素看成點,化合物看成邊,每次新的化合物進來當成連一條邊。如果圖中沒有環,則每個連通分量是一棵樹,其邊數等於點數減1,不可能存在**的情況;如果圖中有環,則這個環上點數等於邊數,就會**。使用並查集連邊,如果要連的兩個點在同一集合中,則答案加1。
code:
#include #include#include
#include
#include
#include
using
namespace
std;
typedef
long
long
ll;#define max_v 100005
intpa[max_v];
intre[max_v];
intn,ans;
void make_set(int
x)int find_set(int
x)void union_set(int x,int
y)
if(re[x]>re[y])
pa[y]=x;
else
}int
main()
printf(
"%d\n
",ans);
}return0;
}//判斷有沒有構成環,構成環的不放進去且計數加1
//輸出計數
簡單並查集
哈爾濱理工大學oj 1160 吸血鬼 description remilia是 東方紅魔館 中首次亮相的吸血鬼角色,是有著500歲年齡的吸血鬼領主。作為紅魔館的主人,有著高貴和威嚴的氣質,不過也經常任性和孩子氣。關於吸血鬼有很多傳說。吸血鬼是乙個血族,有著嚴格的等級。吸血鬼會嚴格聽從血之主人的命令。...
簡單並查集小結。
小夥伴們最近都在瘋狂的發部落格啊。我也來湊湊熱鬧。先發個簡單的並查集吧。所謂的並查集演算法是一種樹型的資料結構,用於處理一些不相交集合的合併及查詢問題。如果 給出各個元素之間的聯絡,要求將這些元素分成幾個集合,每個集合中的元素直接或間接有聯絡。在這類問題中主要涉及的是對集合的合併和查詢,因此將這種集...
並查集簡單題
題目傳送 poj 1611 the suspects ac include include include include include include include include include include include include include include define l...