pku2289 最大流 通訊錄分組

2021-05-27 02:12:46 字數 930 閱讀 5648

題意:通訊錄中有n個人,想分m個組,每個人有可以分到的組,問怎麼分使得每組最多人數最少。

分析:最大流,二分每組最多的人數。新加源點s,連每個人,流量為1;若人能放m組,則連n人至m組,流量為1;每組連匯點t,流量為二分的最多人數。注意每個組最多n人,所以r初值設為n。。。

//ac,dinic超時,sap 500ms+ac

#include#includeusing namespace std;

const int maxn=2100;

const int maxm=2100000;

const int maxint=0x3fffffff;

struct edge

e[maxm];

int s,t,n,m,edgenum,first[maxn],dist[maxn],q[maxn],pre[maxn],now[maxn],cur[maxn],cnt[maxn],g[1100][1100];

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

int sap()

} dist[i]=min+1;

cnt[dist[i]]++;

if(i!=s)

}return tot;

}/*int min(int a,int b)

} }if(dist[t]!=-1) return true;

return false;

}int dfs(int t)

return j;

}int dinic()

return sum;

}*/int main()

} l=1,r=n+1;//每組最多n個人

while(l<=r)

printf("%d\n",r+1);

} return 0;

}

SAP 演算法 求最大流 poj 3189 pku

include using namespace std int const maxn 1100 int const maxm 50010 int const oo 1234567890 typedef struct edge t edge t e maxm int first maxn int di...

模板 網路最大流 最大流

給出乙個網路圖,以及其源點和匯點,求出其網路最大流。in put role presentation inp utin put4 5 4 3 4 2 30 4 3 20 2 3 20 2 1 30 1 3 40ou tput role presentation out puto utpu t50最大...

模板 網路最大流 最大流

給出乙個網路圖,以及其源點和匯點,求出其網路最大流。in put role presentation inp utin put4 5 4 3 4 2 30 4 3 20 2 3 20 2 1 30 1 3 40ou tput role presentation out puto utpu t50最大...