原題傳送門,並差集模板簡介,大佬並差集詳解。
寫在前面:
這個題讓我們判斷有沒有同性戀(好**哦),需要用並差集來做,不過還需要判斷性別。雖然是用並差集但是跟平常的還是有點區別的(注意meg和fin函式的變化)。
解題思路:
判斷兩個昆蟲是否相連
1、如果沒有,用meg函式連起來。
2、如果已經相連,就判斷兩個昆蟲是否同性,怎麼判斷呢,其實我們可以通過節點到最上面的節點距離來判斷(用len陣列存),如果兩個節點的len的差值是奇數,說明兩個節點異性,反之就是同性。
寫在最後:
這題沒坑,這題沒坑,這題沒坑!!!
你想多了,這種題怎麼沒坑呢。明明**已經碼出來了,就是提示輸出錯誤,然後發現每個樣例之間需要空一行。哈哈,我終於找到了,根據我多年(可能是多月)acm的經驗,既然樣例之間要空行,那麼最後乙個樣例肯定沒有空行。結果一提交,woc,心中一萬個草泥馬路過,為什麼還是輸出錯誤,這個有毒吧,不做了。手動狗頭。。。
其實最後乙個樣例也是有空行的,呃,怎麼說呢,上圖:
看吧,人家是有空行的。
唉,菜是原罪,我是滾回去重新學吧。
ac**:
# include
# include
# include
# include
# include
# include
# include
using namespace std;
const
int maxn =
2005
;int id[maxn]
;int len[maxn]
;//len[i]記錄i到最上面的節點的距離
intfin
(int a)
len[a]
= l;
return x;
}void
meg(
int x,
int y)
else
}bool same
(int x,
int y)
intmain()
memset
(len,0,
sizeof
(len));
//注意初始化。
int m, n;
cin >> m >> n;
string ans =
"no suspicious bugs found!"
;while
(n--
)else}}
cout <<
"scenario #"
<< ti <<
":"<< endl<< ans << endl<
}return0;
}
杭電1272 並差集
原題傳送門,並差集模板詳解鏈結,大佬並差集詳解鏈結。解題思路 1 判斷是否有環 2 判斷所有的房子是否連在一起。第一點可以通過same函式判斷,在輸入的時候就可以判斷 第二點可以先通過vis陣列標記,然後遍歷vis陣列,當vis i 1並且id i i的時候,說明i是最上面的父親。再符合條件的情況下...
杭電1198 並差集
原題傳送門,並差集模板函式簡單介紹,大佬的並差集詳解。寫在題前 因為最近學的並差集,因此專門搜的杭電並差集,也就是說,在看這個題之前我已經知道他是用並差集來做的。之前我碰到的題沒有涉及到二維這種情況,其實了解了思路還是很好做的,就是過程有點繁瑣,細節要注意。解題步驟 1 遍歷每個田地,對於每個田地,...
杭電1598 並差集
寫在題前 解題思路 將輸入的資料,按照速度的大小 從小到大 排序 依次將資料用meg函式建立關係,判斷查詢的資料是否符合 第一次符合條件的速度減去剛開始的速度就是答案。具體見 寫在題後 ac include include include include include include includ...