最大流求最大匹配 ZJOI2009 假期的宿舍

2021-08-20 20:55:15 字數 883 閱讀 7169

有一些人,他們可能認識可能不認識,認識的人可以把自己的床給別人睡,有些人不需要床,有些人有床,請問能否讓所有需要睡覺的人都有一張床,如果可以輸出乙個奇怪的字元,如果不可以輸出另乙個奇怪的字元

毫無疑問,這是乙個二分圖最大匹配的裸題,照理說本來是應該用匈牙利的,但是因為要求聯絡最大流,所以就打了這個**

這道題最大流的核心在於建圖,其它的套板子就行了!

#include

#include

#include

#define min(a,b) a#define n 5001

#define pyes printf("^_^\n")

#define puno printf("t_t\n")

using

namespace

std;int f,p,k,n;char c;

int read()

struct nodee[n];int l[n],tot,d[n],s=0,t=1001,sum;bool a[n],x;

void qk()

void add(int u,int v,int w)

bool bfs()}}

return

false;

}int dfs(int x,int flow)

}if(!rest) d[x]=0;

return rest;

}int dinic()

int main()

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

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

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

if(dinic()==sum) pyes;else puno;

}}

模板 EK求最大流 dinic求最大流

acm模板 yxc老師的部分總結 基本概念 1.1 流網路,不考慮反向邊 1.2 可行流,不考慮反向邊 1.2.1 兩個條件 容量限制 流量守恆 1.2.2 可行流的流量指從源點流出的流量 流入源點的流量 1.2.3 最大流是指最大可行流 1.3 殘留網路,考慮反向邊,殘留網路的可行流f 原圖的可行...

Dinic ISAP求最大流

給定乙個包含 n 個點 m 條邊的有向圖,並給定每條邊的容量,邊的容量非負。圖中可能存在重邊和自環。求從點 s 到點 t的最大流。輸入格式 第一行包含四個整數 n,m,s,t。接下來 m 行,每行三個整數 u,v,c,表示從點 u 到點 v 存在一條有向邊,容量為 c。點的編號從 1 到 n。輸出格...

棋盤覆蓋 最大流求解最大匹配

乙個二分圖最大匹配的問題,依然是分成兩部分,數字座標和為奇數的為一部分,和為偶數的為另一部分。這兩部分各自內部沒有連線,可以作為二分圖。二分圖最大匹配可以用最大流解決。可以引進乙個源點s ss,從s ss出發向二分圖的左部分連線 有向邊 把從左部分連向右部分的雙向邊換成從左連向右邊的單向邊,然後從二...