並查集 二分 福州大學第十三屆程式設計競賽 E題

2021-07-25 14:24:34 字數 1035 閱讀 4932

problem 2233 ~aptx4869

為了幫助柯南回到一公尺七四,阿笠博士夜以繼日地研究aptx4869的解藥。他得出了如下結果:

1.解藥由n種原料構成;

2.對於兩種不同的的原料a,b,它們之間有個影響值f(a,b);

3.需要把原料分成兩個部分x,y,每部分中至少有一種原料;

4.解藥的效果由分別屬於x,y的原料之間,最小的影響值決定,即

效果=min

博士需要你幫忙求出:在所有的方案中,最大的效果值可以是多少?

多組資料(<=10),處理到eof。

每組資料輸入第一行為乙個正整數n。

接下去是乙個n行n列的整數矩陣,同一行的數以空格隔開。矩陣第i行j列表示第i種和第j種材料的影響值f(i,j)。給出的矩陣是對稱的,即f(i,j)=f(j,i)。當i=j時,f(i,i)沒有意義,矩陣該處的值為-1。

2<=n<=800。當i!=j時,0<=f(i,j)<=1000000;當i=j時,f(i,j)=-1。

每組資料輸出一行,表示最大可能的效果值。

3-1 100 300100 -1 200300 200 -1

200

#include#include#include#includeusing namespace std;

#define n 805

int n,a[n][n],v[n],pre[n],b[n*n/2],p;

int find(int x) //並查集的運用

while(r!=x)

return x;

}void join(int a,int b)

void init() //資料初始化

int judge(int x) //判斷是否滿足條件

void binary() //二分求解

sort(b,b+p);

p=unique(b,b+p)-b;

binary();

}return 0;

}

福州大學第十三屆程式設計競賽 重現

problem c 平行四邊形數 accept 71 submit 345 time limit 2000 msec memory limit 32768 kb problem description 在乙個平面內給定n個點,任意三個點不在同一條直線上,用這些點可以構成多少個平行四邊形?乙個點可以同...

關押罪犯 並查集 二分

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

擴散(二分答案 並查集)

乙個點每過乙個單位時間就會向四個方向擴散乙個距離,兩個點a b連通,記作e a,b 當且僅當a b的擴散區域有公共部分。連通塊的定義是塊內的任意兩個點u v都必定存在路徑e u,a0 e a0,a1 e ak,v 給定平面上的n給點,問最早什麼時刻它們形成乙個連通塊。我們可以二分答案,然後對於每個時...