落谷 P1231 教辅的组成
来源:互联网 发布:mac加速的视频播放器 编辑:程序博客网 时间:2024/05/17 02:07
题目大意:
恩呃呃呃…给你A,B,C三类的物品,给出A,B;B,C的匹配关系,一个A,B,C类物品在一起就算一套物品。求出最多可以有多少套物品。
思路:
最大流的问题,建立一个超级源点和超级汇点,然后A-B-B’-C连边,从源点跑一次网络流然后就可以求出答案了
程序:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#define MAXN 1000010#define MAX 999999999using namespace std;int n,m,k,s,t,c=2,ans=0;int head[MAXN],next[MAXN],go[MAXN],w[MAXN],deep[MAXN];inline int read(){ int date=0,w=1; char c=0; while (c<'0'||c>'9'){if (c=='-') w=-1;c=getchar();} while (c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();} return date*w;}void add(int x,int y,int p){ go[c]=y; next[c]=head[x]; w[c]=p; head[x]=c++; go[c]=x; next[c]=head[y]; w[c]=0; head[y]=c++;}bool bfs(){ int u,v; queue<int>q; memset(deep,0,sizeof(deep)); deep[s]=1; q.push(s); while (!q.empty()){ u=q.front(); q.pop(); for (int i=head[u];i;i=next[i]){ v=go[i]; if (w[i]&&!deep[v]){ deep[v]=deep[u]+1; if (v==t) return true; q.push(v); } } } return false;}int dfs(int x,int mi){ if (x==t) return mi; int v,sum,cost=0; for (int i=head[x];i;i=next[i]){ v=go[i]; if (w[i]&&deep[v]==deep[x]+1){ sum=dfs(v,min(mi-cost,w[i])); if (sum>0){ w[i]-=sum; w[i^1]+=sum; cost+=sum; if (cost==mi) break; } else deep[v]=-1; } } return cost;}int dinic(){ int ans=0; while (bfs()) ans+=dfs(s,MAX); return ans;}int main(){ int f,u,v; n=read(); m=read(); k=read(); f=read(); for (int i=1;i<=f;i++){ u=read(); v=read(); add(v,u+m,1); } f=read(); for (int i=1;i<=f;i++){ u=read(); v=read(); add(u+n+m,v+n+n+m,1); } for (int i=1;i<=n;i++) add(i+m,i+m+n,1); for (int i=1;i<=m;i++) add(n+m+k+n+1,i,1); for (int i=1;i<=k;i++) add(i+n+n+m,n+n+m+k+2,1); s=n+m+k+n+1; t=n+n+m+k+2; printf("%d\n",dinic()); return 0;}
阅读全文
0 0
- 落谷 P1231 教辅的组成
- 【洛谷P1231】教辅的组成
- 洛谷 P1231 教辅的组成
- 洛谷 P1231 教辅的组成
- 洛谷P1231 教辅的组成
- 洛谷P1231:教辅的组成(网络流)
- 网络流——洛谷P1231 教辅的组成
- 洛谷P1231教辅的组成(网络流 + 拆点)
- luogu1231 教辅的组成
- 教辅的组成 洛谷1231 网络流
- 教辅的组成_洛谷1231_网络流
- 洛谷 1231_教辅的组成_网络流
- 教辅写的二分查找
- P1231 危险道路
- PTA教辅 求n以内最大的k个素数以及它们的和
- 为全国第二大教辅图书商开发的门户平台。(http://www.rudder.com.cn)
- 对话分答:“Live”是意识流,要做有实用知识的“教辅”
- wikioi p1231 最优布线问题
- angular 简单的服务应用
- 线程池
- 省市区地址三级联动jQuery插件Distpicker使用
- 进程通信程序整理---管道(Linux)
- python决策树-1
- 落谷 P1231 教辅的组成
- 1070. 结绳(25)
- 作用域、上下文、闭包、原型、继承
- Linux进程间通信(三)信号
- ubuntu 安装postgresql
- 678. Valid Parenthesis String
- Spring入门笔记一
- 基于ZooKeeper的分布式锁和队列
- JAVA与PHP之间进行aes加密解密