洛谷P1525 關押罪犯

2021-09-25 21:54:14 字數 869 閱讀 3386

傳送門由最後劃分的結果在兩個集合,聯想到二分圖

又由於答案具有單調性,即如果當前答案可以則更大的答案也一定可以,想到二分答案

思路:二分答案,每次對於答案進行檢驗,檢驗時將\(<=\)答案的邊都忽略掉,只保留比答案大的邊,然後進行染色判定二分圖,如果能構成二分圖,說明這些點可以被分在兩個不同的集合,且由二分圖的定義可以得到,集合內的點之間無連邊,而兩集合之間的連邊在本題的背景下等於被斷掉了,即可以保證有分配方案使得衝突值小於二分到的答案

#include#define n 50010

#define m 200010

using namespace std;

inline int read()

while (isdigit(c))

return cnt * f;

}int first[n], nxt[m], to[m], w[m], tot, max = -1, ans;

int color[n];

int n, m, x, y, z;

void add(int x, int y, int z)

bool dfs (int u, int t)

else if (color[v] == color[u]) return false;

}return true;

}bool check (int res) }}

return flag;

}int solve(int r)

return l;

}int main()

ans = solve(max);

printf("%d", ans);

return 0;

}

洛谷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 的罪犯被...