[題目鏈結]
[演算法]
很明顯的0 / 1分數規劃問題
首先二分答案 , 顯然 , 若 sigma(aij - mid * bij) >= 0 , 說明有比mid更優的解
用費用流 / km演算法檢驗即可
時間複雜度 : o(n^3logn)
[**]
#includeusingnamespace
std;
#define maxn 110
const
double inf =1e15;
const
double eps = 1e-9
;int
n;double
delta;
intmatch[maxn];
inta[maxn][maxn] , b[maxn][maxn];
double
la[maxn] , lb[maxn];
double
c[maxn][maxn];
bool
visiteda[maxn] , visitedb[maxn];
template
inline void chkmax(t &x,t y)
template
inline void chkmin(t &x,t y)
template
inline void read(t &x)
inline
bool dfs(int
u) }
else chkmin(delta , la[u] + lb[i] -c[u][i]);}}
return
false;}
inline
double
km()
for (int i = 1; i <= n; i++)}}
double ret = 0
;
for (int i = 1; i <= n; i++) ret +=c[match[i]][i];
return
ret;
}inline
bool check(double
mid)
}
if (km() >= 0) return
true
;
else
return
false;}
intmain()
}for (int i = 1; i <= n; i++)
}double l = 0 , r = (int)1e4 , ans = 0
;
while (l + eps else r =mid;
}printf(
"%.6lf\n
", ans);
return0;
}
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...
SDOI2017 新生舞會 題解
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 那麼答案小...