3698 XWW的難題 有源匯上下界最大流

2022-05-03 08:12:09 字數 1711 閱讀 4886

time limit: 10 sec  memory limit: 128 mb

submit: 354  solved: 178

[submit][status][discuss]

xww是個影響力很大的人,他有很多的追隨者。這些追隨者都想要加入xww教成為xww的教徒。但是這並不容易,需要通過xww的考核。

xww給你出了這麼乙個難題:xww給你乙個n*n的正實數矩陣a,滿足xww性。

稱乙個n*n的矩陣滿足xww性當且僅當:(1)a[n][n]=0;(2)矩陣中每行的最後乙個元素等於該行前n-1個數的和;(3)矩陣中每列的最後乙個元素等於該列前n-1個數的和。

現在你要給a中的數進行取整操作(可以是上取整或者下取整),使得最後的a矩陣仍然滿足xww性。同時xww還要求a中的元素之和盡量大。

第一行乙個整數n,n ≤ 100。

接下來n行每行包含n個絕對值小於等於1000的實數,最多一位小數。

輸出一行,即取整後a矩陣的元素之和的最大值。無解輸出no。

43.1 6.8 7.3 17.2

9.6 2.4 0.7 12.7

3.6 1.2 6.5 11.3

16.3 10.4 14.5 0

129【資料規模與約定】

有10組資料,n的大小分別為10,20,30...100。

【樣例說明】

樣例中取整後滿足xww性的和最大的矩陣為:

3 7 8 18

10 3 0 13

4 1 7 12

17 11 15 0

[submit][status]

#include#include

#include

using

namespace

std;

const

int n=205

;const

int m=1e5+5

;struct edgee[m];int tot=1

,head[n];

int n,s,t,ss,tt,res,sum,in

[n],dis[n],q[m];

double

a[n][n];

inline

void add(int x,int y,int

z)bool bfs(int s,int

t) }

}return0;

}int dfs(int x,int t,int

f) }

if(!used) dis[x]=-1

;

return

used;

}void dinic(int s,int

t)void

scanf("%d

",&n);

for(int i=1;i<=n;i++)

}s=n<<1|1;t=s+1;ss=s+2;tt=s+3

;

for(int i=1;i)

for(int i=1;i)

for(int i=1;i)

}for(int i=1;i<=tt;i++)

add(t,s,2e9);

}int

main()

dinic(s,t);

printf(

"%d\n

",res*3

);

return0;

}

BZOJ3698 XWW的難題 有上下界的最大流

xww是個影響力很大的人,他有很多的追隨者。這些追隨者都想要加入xww教成為xww的教徒。但是這並不容易,需要通過xww的考核。xww給你出了這麼乙個難題 xww給你乙個n n的正實數矩陣a,滿足xww性。稱乙個n n的矩陣滿足xww性當且僅當 1 a n n 0 2 矩陣中每行的最後乙個元素等於該...

BZOJ 3698 XWW的難題 上下界網路流

下界為各數下取整的值,取差建立超級源匯點ss,tt跑一遍dinic,先判斷是否可以滿流,然後再跑原圖,ans 3 原值算一遍,右邊算一遍,下邊算一遍 詳見 include include include include define inf 0x7fffffff define db double u...

BZOJ3698 XWW的難題 網路流

time limit 10 sec memory limit 128 mb submit 533 solved 275 submit status discuss xww是個影響力很大的人,他有很多的追隨者。這些追隨者都想要加入xww教成為xww的教徒。但是這並不容易,需要通過xww的考核。xww給...