NOIp2010 關押罪犯

2022-03-06 19:42:44 字數 2227 閱讀 6765

s 城現有兩座監獄,一共關押著 n 名罪犯,編號分別為1~n。

他們之間的關係自然也極不和諧。

很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。

我們用「怨氣值」(乙個正整數值)來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。

如果兩名怨氣值為 c 的罪犯被關押在同一監獄,他們倆之間會發生摩擦,並造成影響力為 c 的衝突事件。

每年年末,警察局會將本年內監獄中的所有衝突事件按影響力從大到小排成乙個列表,然後上報到 s 城 z 市長那裡。

公務繁忙的 z 市長只會去看列表中的第乙個事件的影響力,如果影響很壞,他就會考慮撤換警察局長。

在詳細考察了 n 名罪犯間的矛盾關係後,警察局長覺得壓力巨大。

他準備將罪犯們在兩座監獄內重新分配,以求產生的衝突事件影響力都較小,從而保住自己的烏紗帽。

假設只要處於同一監獄內的某兩個罪犯間有仇恨,那麼他們一定會在每年的某個時候發生摩擦。那麼,應如何分配罪犯,才能使 z 市長看到的那個衝突事件的影響力最小?這個最小值是多少?

第一行為兩個正整數 n 和 m,分別表示罪犯的數目以及存在仇恨的罪犯對數。

接下來的 m 行每行為三個正整數\(a_j,b_j,c_j\),表示\(a_j\)號和\(b_j\)號罪犯之間存在仇恨,其怨氣值為\(c_j\)。

資料保證\(1 \le a_j < b_j < n,0 < c_j \le 1000000000\) 且每對罪犯組合只出現一次。

輸出共1行,為 z 市長看到的那個衝突事件的影響力。

如果本年內監獄中未發生任何衝突事件,請輸出0。

4 6

1 4 2534

2 3 3512

1 2 28351

1 3 6618

2 4 1805

3 4 12884

3512
\(n \le 20000, m \le 100000\)

這是一道最值問題,我們考慮用二分答案法來求解,由於問題的解滿足單調性,所以我們最終的方案為染色演算法\(+\)二分答案法

#include#include#include#include#include#include#includeusing namespace std;

const int n=100000,m=500000;

int n,m,maxc,ans;

struct node f[m];

struct edge e[m];

int ne,hd[n],col[n];

bool flag;

void read()

}void build(int a,int b)

, hd[a]=ne;

}void dfs(int t,int ft,int color)

int nt;

col[t]=color;

for(int i=hd[t];i!=-1;i=e[i].nx) }

bool ok(int mid)

flag=0;

for(i=1;i<=n;++i)

if(!col[i])

ans=mid; return 1;

}void solve()

printf("%d\n",ans);

}int main()

其實也不比用二分答案法

#include#include#include#includeusing namespace std;

const int n=100000,m=500000;

struct nodef[m];

int n,m;

bool cmp(const node &x,const node &y)

inline void read()

struct edgee[m];int ne,hd[n];

inline void build(int x,int y), hd[x]=ne;

}int col[n];

queueq;

inline int bfs(int x,int y)

} if(col[x]==col[y])return 1;

} return 0;

}inline int find_two()return i;

}int main()

noip2010 關押罪犯

s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極 不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨 氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之 間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監...

NOIP2010關押罪犯

s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監獄,他...

NOIP 2010 關押罪犯

題目描述 s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同...