LOJ6004 网络流24题
来源:互联网 发布:农业大数据价值 编辑:程序博客网 时间:2024/06/06 09:29
听zjq大爷说noip要考网络流 吓得切了几道
都是很裸的 虽然跑的慢 但是挺短的
#include<bits/stdc++.h>#define inf ~0u>>2using namespace std;const int N=435;queue<int>q;int n,m,s,t,ans,sum,tot=1;int head[N],dis[N],cur[N],tmp[N][N];struct Egde{ int v,nxt,w;}e[N*N*2];void add(int u,int v,int w){ e[++tot].v=v,e[tot].nxt=head[u],e[tot].w=w,head[u]=tot; e[++tot].v=u,e[tot].nxt=head[v],e[tot].w=0,head[v]=tot;}bool bfs(){ memset(dis,0,sizeof dis); while(!q.empty()) q.pop(); q.push(s),dis[s]=1; while(!q.empty()){ int x=q.front();q.pop(); for(int i=head[x];i;i=e[i].nxt){ int j=e[i].v; if(!dis[j]&&e[i].w){ dis[j]=dis[x]+1; q.push(j); } } } return dis[t]!=0;}int dfs(int x,int del){ if(x==t||!del) return del; int ret=0; for(int& i=cur[x];i&&del;i=e[i].nxt){ int j=e[i].v; if(e[i].w&&dis[j]==dis[x]+1){ int dd=dfs(j,min(del,e[i].w)); e[i].w-=dd; e[i^1].w+=dd; ret+=dd; del-=dd; } } return ret;}int dinic(int& o){ while(bfs()){ for(int i=1;i<=n+m+2;i++) cur[i]=head[i]; o+=dfs(s,inf); }}int main(){ cin>>m>>n; s=n+m+1,t=n+m+2; for(int i=1,x;i<=m;i++){ cin>>x;sum+=x; add(s,i,x); } for(int i=1,x;i<=n;i++){ cin>>x; add(m+i,t,x); } for(int i=1;i<=m;i++) for(int j=1;j<=n;j++){ tmp[i][j]=tot+1; add(i,j+m,1); } dinic(ans); printf("%d\n",ans==sum); if(ans==sum) for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(!e[tmp[i][j]].w) printf("%d ",j); } printf("\n"); }}
阅读全文
0 0
- LOJ6004 网络流24题
- LOJ6004 「网络流 24 题
- loj6004「网络流 24 题」圆桌聚餐(最大流)
- 【网络流】网络流24题
- [网络流]: 网络流24题
- 网络流24题
- 网络流24题
- 网络流24题
- 网络流24题
- 网络流24题---餐巾纸
- [网络流24题] 餐巾
- 网络流24题-2
- 网络流24题-3
- 网络流24题-4
- 网络流24题-5
- 网络流24题-6
- 网络流24题-7
- 网络流24题-8
- Python中创建进程的两种方式以及进程池
- 2017.10.30清北学堂测试
- HttpURLConnection getContentLength返回-1
- FZU 2150 Fire Game
- StringBuilder用法
- LOJ6004 网络流24题
- 洛谷1186 玛丽卡
- properties读取,乱码相关问题解决过程
- 创建数据库并插入数据
- Java图形界面
- bootstrap之tooltip
- mysql的processlist中出现大量的query end状态
- 高德地图开发bug
- LOJ6005 网络流24题