洛谷P3254 24題 圓桌問題 網路流

2022-09-03 05:18:10 字數 1300 閱讀 9453

有nn

個餐桌m

m個公司,每個公司有a[i

]a[i

]個人,而每個餐桌能容納b[i

]b[i

]人。同乙個公司的人不能坐在乙個餐桌上。求能否滿足以上要求。

卡時卡過的,也不知道為什麼會被卡。

這道題很明顯最大流。公司放左邊,桌子放右邊,原點連公司,流量為公司人數,匯點連桌子,流量為可以容納的人數。所有公司依次和所有桌子相連,流量為1。

然後跑一邊最大流即可。

#include

#include

#include

#include

#define inf 1e9

using

namespace std;

int n,m,k,head[

800001

],dep[

800001

],s,t,x,sum,num,ans,p[

501]

[801

],peo[

801]

;struct edge

e[2000001];

void

add(

int from,

int to,

int c)

//建模

bool

bfs(

)//分層}}

return

(dep[t]

<

0x3f3f3f3f);

}int

dfs(

int u,

int low)

//找增廣路

}return0;

}void

print()

//輸出方案

for(

int i=

1;i<=n;i++)}

intmain()

}for

(int i=

1;i<=m;i++

)while

(bfs()

)if(ans

return

printf

("0\n")&

0;printf

("1\n");

print()

;return0;

}

洛谷P3254 圓桌問題

題目大意 有 m 個單位,每個單位有 r i 個代表,有 n 張餐桌,每張餐桌可容納 c i 個代表。要求同乙個單位的代表不在同乙個餐桌就餐。若可以,輸出 1 以及其中一種方案,否則輸出 0 題解 貪心,把餐桌大小和單位人數從小到大排序,因為單位規模越大就越難滿足,所以我們優先考慮他們。而桌子越多越...

洛谷 P3254 圓桌問題 (網路流24題)

題目 圓桌問題 思路 貪心,優先考慮人數多的團體,優先放在人數多的桌子上。如果不嫌麻煩考慮網路流做法,只需把起點和所有團體連人數的邊,團體和桌子連1,桌子和匯點連容量邊跑最大流就好。美麗的貪心 include using namespace std define maxn 300 define re...

洛谷P1251 網路流24題 餐巾計畫問題

這題用zkw是真的快 洛谷原先是卡了普通費用流的 但是現在時間到4s了,又有o2和高效能,貌似普通的費用流也可以過了,首先,要把每一天和源點匯點建一條容量為每天的需求的邊,費用為0,然後在條件滿足的情況下 i n num of days之類的 向快洗之後那天建容量inf費用f的邊,慢洗也是,注意要和...