hdu 4292 最大流 水題

2022-06-03 14:48:07 字數 2105 閱讀 6448

很裸的一道最大流

格式懶得排了,注意把人拆成兩份,乙份連線食物,乙份連線飲料

4 3 3  //4個人,3種食物,3種飲料

1 1 1  //食物每種分別為1

1 1 1  //飲料每種數目分別為1

yyn   //第乙個人對第1,2,3種食物的態度為接受,接受和拒絕

nyyyny

ynyyny   //第乙個人對第1,2,3種飲料的態度為接受,拒絕和接受

yynyyn

nny

3
1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8const

int maxn=11005;9

const

int maxn = 10010;//

點數的最大值

10const

int maxm = 400010;//

邊數的最大值

11const

int inf = 0x3f3f3f3f;12

struct

edge

13edge[maxm];//

注意是maxm

16int

tol;

17int

head[maxn];

18int

gap[maxn],dep[maxn],cur[maxn];

19void

init()

2024

void addedge(int u,int v,int w,int rw = 0)25

31int

q[maxn];

32void bfs(int start,int

end)

3351}52

}53ints[maxn];

54int sap(int start,int end,int

n)55

73for(int i = 0;i < top;i++)

7478 ans +=min;

79 top =inser;

80 u = edge[s[top]^1

].to;

81continue;82

}83bool flag = false;84

intv;

85for(int i = cur[u]; i != -1; i =edge[i].next)

8694}95

if(flag)

96101

int min =n;

102for(int i = head[u]; i != -1; i =edge[i].next)

103if(edge[i].cap - edge[i].flow && dep[edge[i].to] 104108 gap[dep[u]]--;

109if(!gap[dep[u]])return

ans;

110 dep[u] = min + 1

;111 gap[dep[u]]++;

112if(u != start)u = edge[s[--top]^1

].to;

113}

114return

ans;

115}

116int g[2000][2000

];117

intmain()

118135

for(i=f+2*n+1;i<=f+2*n+d;i++)

136140

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

141144

char s[250

];145

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

146154

}155

}156

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

157165

}166

}167 printf("

%d\n

",sap(start,end,d+f+2*n+1

));168

}169

return0;

170 }

hdu 4292 拆點 最大流)

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

hdu 4292 拆點 最大流)

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

HDU 4292 網路流最大流

題目大意 有n個人,f的food,d的飲料,每個人對事物和飲料有偏好,並且如果乙個人沒有飲料或者事物他就會離開,問最後最多有幾個人留下來 題目解析 開始是超級食物匯點,中間是人,因為每個人最多選一種食物,所以人與自己也要加一條邊,最後是超級飲料匯點,最大流ek即可 ac include includ...