loj6004「网络流 24 题」圆桌聚餐(最大流)
2017-12-08 22:03
295 查看
s向所有单位建边,所有餐桌向T建边,每个单位向每个餐桌建容量为1的边,跑dinic看是否满流即可。
#include <bits/stdc++.h> using namespace std; #define ll long long #define N 500 #define inf 0x3f3f3f3f inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f; } int n,m,h ,num=1,lev ,ans=0,T=430,tot=0; struct edge{ int to,next,val; }data[100000]; inline void add(int x,int y,int val){ data[++num].to=y;data[num].next=h[x];h[x]=num;data[num].val=val; data[++num].to=x;data[num].next=h[y];h[y]=num;data[num].val=0; } inline bool bfs(){ queue<int>q;memset(lev,0,sizeof(lev)); q.push(0);lev[0]=1; while(!q.empty()){ int x=q.front();q.pop(); for(int i=h[x];i;i=data[i].next){ int y=data[i].to;if(!data[i].val||lev[y]) continue; lev[y]=lev[x]+1;q.push(y); } }return lev[T]; } inline int dinic(int x,int low){ if(x==T) return low;int tmp=low; for(int i=h[x];i;i=data[i].next){ int y=data[i].to;if(lev[y]!=lev[x]+1||!data[i].val) continue; int res=dinic(y,min(tmp,data[i].val)); if(!res) lev[y]=0;tmp-=res;data[i].val-=res;data[i^1].val+=res; if(!tmp) return low; }return low-tmp; } int main(){ // freopen("a.in","r",stdin); n=read();m=read(); for(int i=1;i<=n;++i){ int x=read();tot+=x;add(0,i,x); for(int j=1;j<=m;++j) add(i,n+j,1); }for(int i=1;i<=m;++i) add(i+n,T,read()); while(bfs()) ans+=dinic(0,inf); if(ans!=tot){puts("0");return 0;}puts("1"); for(int x=1;x<=n;++x){ for(int i=h[x];i;i=data[i].next){ int y=data[i].to;if(data[i].val) continue; printf("%d ",y-n); }puts(""); }return 0; }
相关文章推荐
- LOJ6004 「网络流 24 题 - 5」圆桌聚餐 最大流
- loj #6004. 「网络流 24 题」圆桌聚餐(最大流)
- 【PowerOJ1740&网络流24题 圆桌聚餐】(最大流)
- 【网络流24题】圆桌聚餐(最大流)
- [网络流24题] 圆桌聚餐 最大流/路径输出
- Libre 6004 「网络流 24 题」圆桌聚餐(网络流,最大流)
- loj6004「网络流 24 题」圆桌聚餐
- [网络流24题] 05 圆桌聚餐(最大流判满流)
- [Loj]#6004. 「网络流 24 题」圆桌聚餐
- 【loj】#6004. 「网络流 24 题」圆桌聚餐(二分图匹配)
- 网络流24题 圆桌聚餐
- [网络流24题]圆桌问题(最大流)
- [网络流24题-4]cogs729 圆桌聚餐
- [网络流24题] 圆桌聚餐
- 网络流24题 05圆桌聚餐
- Cogs 729. [网络流24题] 圆桌聚餐
- [网络流24题]圆桌聚餐
- COGS729. [网络流24题] 圆桌聚餐
- [网络流24题] 圆桌聚餐
- cogs 729. [网络流24题] 圆桌聚餐