HDU 4292 網路流最大流

2021-07-25 03:26:58 字數 750 閱讀 2664

題目大意:有n個人,f的food,d的飲料,每個人對事物和飲料有偏好,並且如果乙個人沒有飲料或者事物他就會離開,問最後最多有幾個人留下來;

題目解析:開始是超級食物匯點,中間是人,因為每個人最多選一種食物,所以人與自己也要加一條邊,最後是超級飲料匯點,最大流ek即可;

ac**:

#include#include#include#include#include#include#includeusing namespace std;

const int inf=0x3fffffff;

const int maxn=10010;

struct node

};

vectorvec[maxn];

int pre[maxn],iter[maxn];

void add_edge(int from,int to,int cost)

void bfs(int s)

} }

} int dfs(int v,int t,int f)

} }

return 0;

} int max_flow(int u,int v)

} int main()

{ int n,i,j,f,d,t;

char str[1001];

while(scanf("%d%d%d",&n,&f,&d)!=eof)

{ for(i=0;i

hdu 4292 拆點 最大流)

思路 為了控制乙個人只連一瓶飲料,乙份食物,那麼我們可以把乙個人拆成兩個,他們之間連一條權值為1的邊,另外左邊連它喜歡的食物,權值為1,右邊連它喜歡的飲料,權值為1,在起點連食物的時候加流量限制,終點加流量限制,跑一遍最大流即可。1 include2 include3 include4 using ...

hdu 4292 拆點 最大流)

思路 為了控制乙個人只連一瓶飲料,乙份食物,那麼我們可以把乙個人拆成兩個,他們之間連一條權值為1的邊,另外左邊連它喜歡的食物,權值為1,右邊連它喜歡的飲料,權值為1,在起點連食物的時候加流量限制,終點加流量限制,跑一遍最大流即可。1 include2 include3 include4 using ...

hdu 4292 最大流 水題

很裸的一道最大流 格式懶得排了,注意把人拆成兩份,乙份連線食物,乙份連線飲料 4 3 3 4個人,3種食物,3種飲料 1 1 1 食物每種分別為1 1 1 1 飲料每種數目分別為1 yyn 第乙個人對第1,2,3種食物的態度為接受,接受和拒絕 nyyyny ynyyny 第乙個人對第1,2,3種飲料...