題目描述
s
ss城現有兩座監獄,一共關押著n
nn名罪犯,編號分別為1−n
1-n1−
n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用「怨氣值」(乙個正整數值)來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c
cc的罪犯被關押在同一監獄,他們倆之間會發生摩擦,並造成影響力為c
cc的衝突事件。
每年年末,警察局會將本年內監獄中的所有衝突事件按影響力從大到小排成乙個列表,然後上報到s
ss城z
zz市長那裡。公務繁忙的z
zz市長只會去看列表中的第乙個事件的影響力,如果影響很壞,他就會考慮撤換警察局長。
在詳細考察了n
nn名罪犯間的矛盾關係後,警察局長覺得壓力巨大。他準備將罪犯們在兩座監獄內重新分配,以求產生的衝突事件影響力都較小,從而保住自己的烏紗帽。假設只要處於同一監獄內的某兩個罪犯間有仇恨,那麼他們一定會在每年的某個時候發生摩擦。
那麼,應如何分配罪犯,才能使z
zz市長看到的那個衝突事件的影響力最小?這個最小值是多少?
輸入輸出格式
輸入格式:
每行中兩個數之間用乙個空格隔開。第一行為兩個正整數n,m
n,mn,
m,分別表示罪犯的數目以及存在仇恨的罪犯對數。接下來的m
mm行每行為三個正整數aj,b
j,cj
_j,b_j,c_j
j,bj
,cj
,表示a
ja_j
aj號和b
jb_j
bj號罪犯之間存在仇恨,其怨氣值為c
jc_j
cj 。資料保證1
≤bj≤n,0
≤1,000
,000
,00011
≤bj
≤n,
0≤1,
000,
000,
000,且每對罪犯組合只出現一次。
輸出格式:
共1
11行,為z
zz市長看到的那個衝突事件的影響力。如果本年內監獄中未發生任何衝突事件,請輸出000。
輸入輸出樣例
輸入樣例#1:
4 61 4 2534
2 3 3512
1 2 28351
1 3 6618
2 4 1805
3 4 12884
輸出樣例#1:
說明【輸入輸出樣例說明】
罪犯之間的怨氣值如下面左圖所示,右圖所示為罪犯的分配方法,市長看到的衝突事件影響力是3512
3512
3512
(由2
22號和3
33號罪犯引發)。其他任何分法都不會比這個分法更優。
【資料範圍】
對於30
%30\%
30%的資料有n≤15
n≤ 15
n≤15
。對於70
%70\%
70%的資料有n
≤2000,m
≤50000
n≤ 2000,m≤ 50000
n≤2000
,m≤5
0000
。對於100
%100\%
100%
的資料有n
≤20000,m
≤100000
n≤ 20000,m≤ 100000
n≤2000
0,m≤
1000
00。題解
聯賽前做水題系列。
敵對的罪犯按照怨氣值從大到小排序,把怨氣值大的罪犯盡量分到兩個監獄裡,兩個監獄分別上兩個並查集即可。
**
#include
using
namespace std;
const
int m=
2e4+5;
struct sdcri[m<<3]
;bool
operator
<
(sd a,sd b)
int f[m]
,eni[m]
,n,m;
introot
(int v)
voidin(
)voidac(
)puts
("0");
}int
main()
luogu1525 關押罪犯
題目描述 s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同...
luogu1525 關押罪犯
題目描述 s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同...
P1525 關押罪犯
s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監獄,他...