这题是算法导论上的经典模型,将发电站看成源,用户看成汇,这样就形成了多源多汇网络流模型,直接加一个总的源汇即可。 源到发电站的容量为发电站的容量,用户到汇 的容量为用户容量,直接跑最大流即可。 我的代码: #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; const int MAX=120; const int oo=0x3f3f3f3f; struct Edge{ int num,ne,cap; }e[2*MAX*MAX]; int pre[MAX],pree[MAX],low[MAX],gap[MAX],cur[MAX],p[MAX]; int dist[MAX]; int n,st,ed,K; int get(){ int ret=0; bool flag=false; char ch; while((ch=getchar())<'0'||ch>'9')if(ch=='-')break; if(ch=='-')flag=true;else ret=ch-'0'; while((ch=getchar())>='0'&&ch<='9')ret=ret*10+ch-'0'; return flag?-ret:ret; } void add(const int& u,const int& v,const int&