4819 Sdoi2017 新生舞會

2021-07-30 14:35:42 字數 2272 閱讀 9518

4819: [sdoi2017]新生舞會

time limit: 10 sec memory limit: 128 mb

submit: 352 solved: 177

[submit][status][discuss]

description

學校組織了一次新生舞會,cathy作為經驗豐富的老學姐,負責為同學們安排舞伴。有n個男生和n個女生參加舞會

買乙個男生和乙個女生一起跳舞,互為舞伴。cathy收集了這些同學之間的關係,比如兩個人之前認識沒計算得出

a[i][j] ,表示第i個男生和第j個女生一起跳舞時他們的喜悅程度。cathy還需要考慮兩個人一起跳舞是否方便,

比如身高體重差別會不會太大,計算得出 b[i][j],表示第i個男生和第j個女生一起跳舞時的不協調程度。當然,

還需要考慮很多其他問題。cathy想先用乙個程式通過a[i][j]和b[i][j]求出一種方案,再手動對方案進行微調。c

athy找到你,希望你幫她寫那個程式。乙個方案中有n對舞伴,假設沒對舞伴的喜悅程度分別是a』1,a』2,…,a』n,

假設每對舞伴的不協調程度分別是b』1,b』2,…,b』n。令

c=(a』1+a』2+…+a』n)/(b』1+b』2+…+b』n),cathy希望c值最大。

input

第一行乙個整數n。

接下來n行,每行n個整數,第i行第j個數表示a[i][j]。

接下來n行,每行n個整數,第i行第j個數表示b[i][j]。

1<=n<=100,1<=a[i][j],b[i][j]<=10^4

output

一行乙個數,表示c的最大值。四捨五入保留6位小數,選手輸出的小數需要與標準輸出相等

sample input

19 17 16

25 24 23

35 36 31

9 5 6

3 4 2

7 8 9

sample output

5.357143

hint

source

鳴謝infinityedge上傳

[submit][status][discuss]

二分乙個答案然後用分數規劃的思想跑跑費用流就行了。。

#include

#include

#include

#include

#include

#include

#include

#include

#define min(a,b) ((a) < (b) ? (a) : (b))

using

namespace

std;

const

int inf = ~0u>>1;

const

int maxn = 205;

const

int maxm = 2e5 + 20;

typedef

double db;

const db g = 1e12;

const db eps = 1e-9;

struct e

e(int to,int cap,int flow,db cost): to(to),cap(cap),flow(flow),cost(cost){}

}edgs[maxm];

int n,s,t,cnt,from[maxn],a[maxn];

db a[maxn][maxn],b[maxn][maxn],cost[maxn];

bool inq[maxn];

queue

q;vector

v[maxn];

inline

void add(int x,int y,int cap,db cost)

inline

bool spfa()}}

return a[t] != inf;

}inline

bool check(db now)

db maxcost = 0;

while (spfa())

}for (int i = s; i <= t; i++) v[i].clear();

cnt = 0; return maxcost > 0 || fabs(maxcost) <= eps;

}int main()

printf("%.6lf\n",(l + r) / 2.00);

return

0;}

4819 Sdoi2017 新生舞會

題目鏈結 題目大意 有n對男女要配對,每對不同的男女會產生兩個不同的權值a和b,求一種搭配方案使得 a 1 a 2 a n b 1 b 2 b n 最大 題解 顯然是01分數規劃,二分 二分圖最大權匹配即可 然而這並不是本題的難點,這題卡spfa費用流常數 當然km可以吊打此題 bzoj上算總時限可...

bzoj4819 Sdoi2017 新生舞會

description 學校組織了一次新生舞會,cathy作為經驗豐富的老學姐,負責為同學們安排舞伴。有n個男生和n個女生參加舞會 買乙個男生和乙個女生一起跳舞,互為舞伴。cathy收集了這些同學之間的關係,比如兩個人之前認識沒計算得出 a i j 表示第i個男生和第j個女生一起跳舞時他們的喜悅程度...

BZOJ4819 SDOI2017 新生舞會

bzoj luogu 有 n 個男孩子和 n 個女孩子。他們之間要兩兩結伴跳舞。已知第 i 個男孩子和第 j 個女孩子結伴跳舞會有兩個引數 a 和 b 現在要求乙個安排方案使得 a 的總和除以 b 的總和的商盡量大。形式化地,就是求乙個長度為 n 的排列 最大化 l frac a b 分數規劃。二分...