\(\huge\mathbb\)
編號:洛谷\(1525\)
演算法:並查集、貪心
\(\huge\mathbb\)
這道題目我們可以用並查集來解決。
首先,我們要打幾個函式:
然後,我們要考慮乙個貪心。
首先,我們把這些矛盾按照值排序。
我們要盡量把矛盾值大的錯開。
然後,就豁然開朗啦~
具體細節也可以看**~
\(\huge\mathbb\)
#include#define max 20001
using namespace std;
struct struct
};int people,thing;
struct criminal[5*max];
int fa[max];
int prison[max];
inline int find(int x);
inline void merge(int x,int y);
inline bool check(int x,int y);
int main(void)
for(i=1;i<=thing;i++)
sort(criminal+1,criminal+thing+1);
for(i=1;i<=thing+1;i++)
else
else
if(!prison[criminal[i].peob])
else
}} return 0;
}inline int find(int x)
inline void merge(int x,int y)
inline bool check(int x,int y)
return false;
}
洛谷P1525 關押罪犯
題目描述 s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同...
洛谷 P1525 關押罪犯
拿到這題看都沒看直接寫了個裸地貪心 並查集 寫完就發現一點問題 include include include include include using namespace std int n,m,g 40010 struct pi pe 100010 bool cmp pi aa,pi bb i...
洛谷P1525 關押罪犯
ss 城現有兩座監獄,一共關押著 nn 名罪犯,編號分別為 1 n1 n 他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為 cc 的罪犯被...