SDOI2017 新生舞會 題解

2022-05-11 04:32:15 字數 1052 閱讀 9106

luogu:

loj:

bzoj:

發現題目要求 $ c = \frac^ a'_i}^ b'_i}$最大化

稍作變形得 $\sum_^ a'_i - \sum_^ b'_i * c = 0$

於是容易想到二分答案$c$,並將第$i$個男生與第$j$個女生連一條無向邊,權值為$a_-b_*c$,使用km演算法進行帶權二分圖的最大匹配。

如果結果大於等於$0$,那麼答案小於等於$c$。

**:

#include#define rep(i,a,b) for(register int i=a;i<=b;++i)

#define n 110

#define inf 1000000007inline

intread()

while(!isdigit(ch));

dowhile

(isdigit(ch));

return f?-x:x;

}using

namespace

std;

intn,a[n][n],b[n][n],match[n];

double

lx[n],ly[n],val[n][n];

bool

vx[n],vy[n];

bool dfs(int

x) }

return0;

}inline

bool

km()

memset(match,-1,sizeof

(match));

rep(i,

1,n)

while(1

)

double res=0

; rep(i,

1,n) if(match[i]>-1

) res+=val[match[i]][i];

return res>0;}

intmain()

printf(

"%.6lf

",mid);

return0;

}

SDOI 2017 新生舞會

題目鏈結 演算法 很明顯的0 1分數規劃問題 首先二分答案 顯然 若 sigma aij mid bij 0 說明有比mid更優的解 用費用流 km演算法檢驗即可 時間複雜度 o n 3logn includeusing namespace std define maxn 110 const dou...

Sdoi2017 新生舞會

time limit 10 sec memory limit 128 mb submit 259 solved 132 submit status discuss 學校組織了一次新生舞會,cathy作為經驗豐富的老學姐,負責為同學們安排舞伴。有n個男生和n個女生參加舞會 買乙個男生和乙個女生一起跳舞...

SDOI2017 新生舞會

題目大意 有n個男生和n個女生跳舞。第i個男生和第j個女生組合會產生a i j 的喜悅程度和b i j 的不協調值。現在你要找到一種方案,使喜悅程度總和與不協調值總和的比值最大。求這個比值。解題思路 分數規劃問題。即令 frac 最大。令其為c,則 sum a c sum b sum a c sum...