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...