题意:





思路:

网络流 重在建图…

建完了图 就一切都好说了

这道题 我的想法是 先把源点和所有的食品连上边 (容量为1)

再把食品和对应的奶牛连上边 (容量为1)

这个时候要拆点 因为每只奶牛只能才吃1种东西嘛

就把奶牛拆成两个点

两个点之间连上一条容量为1的边

把奶牛分裂的第二个点 连到对应的饮料上

最后所有饮料向汇点连一条容量为1的边就好啦

大功告成~~~

//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 100050
int n,f,d,ans,xx,w[N],v[N],first[555],tot,next[N],vis[N],yy,jy;
void add(int x,int y,int z){
w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;
}
bool tell(){
queue<int>q;
q.push(0);
memset(vis,-1,sizeof(vis));
vis[0]=0;
while(!q.empty()){
int t=q.front();q.pop();
for(int i=first[t];~i;i=next[i]){
if(w[i]&&vis[v[i]]==-1){
q.push(v[i]);
vis[v[i]]=vis[t]+1;
}
}
}
return vis[501]!=-1;
}
int zeng(int x,int y){
if(x==501)return y;
int r=0;
for(int i=first[x];y>r&&~i;i=next[i]){
if(w[i]&&vis[v[i]]==vis[x]+1){
int t=zeng(v[i],min(y-r,w[i]));
w[i]-=t,w[i^1]+=t,r+=t;
}
}
if(!r)vis[x]=-1;
return r;
}
void flow(){
while(tell())while(xx=zeng(0,0x3fffffff))ans+=xx;
printf("%d\n",ans);
}
int main()
{
memset(first,-1,sizeof(first));
scanf("%d%d%d",&n,&f,&d);
for(int i=1;i<=f;i++)add(0,i,1),add(i,0,0);
for(int i=1;i<=n;i++){
add(100+i,200+i,1);
add(200+i,100+i,0);
scanf("%d%d",&xx,&yy);
for(int j=1;j<=xx;j++){
scanf("%d",&jy);
add(jy,100+i,1);
add(100+i,jy,0);
}
for(int j=1;j<=yy;j++){
scanf("%d",&jy);
add(200+i,300+jy,1);
add(300+jy,200+i,0);
}
}
for(int i=1;i<=d;i++)add(300+i,501,1),add(501,300+i,0);
flow();
}

最新文章

  1. C# 调用restful服务开源库
  2. AspectJ的基本使用
  3. $.getJSON ashx 跨域
  4. BestCoder Round #66 (div.2) hdu5592
  5. Android源代码之Gallery专题研究(1)
  6. python【第十四篇】HTML与CSS初遇
  7. SQL Server中存储过程比直接运行SQL语句慢的原因
  8. .net操作PDF的一些资源(downmoon收集)
  9. iOS基础 - 数据库-SQLite
  10. 【Map】Double Queue
  11. HDU 4329 MAP(stringstream的用法)
  12. LeetCode 709.To Lower Case
  13. atom那些事儿
  14. MVC中code first方式开发,数据库的生成与更新
  15. android 开发 写一个RecyclerView布局的聊天室,并且添加RecyclerView的点击事件
  16. Caffe训练AlexNet网络模型——问题一
  17. 关于流程图设计,你需要Get的几点必备知识
  18. 小程序 Page is not constructed because it is not found.
  19. Apache-jmeter3.3安装
  20. 静态导入方法即自动拆装箱(java)

热门文章

  1. 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
  2. 微信小程序踩坑记
  3. Maven项目的坐标GroupId和ArtifactId
  4. ESRI.ArcGIS.Controls.AxMapControl
  5. USACO 1.2 Palindromic Squares (进制转换,回文)
  6. 海思 3520D 移植Qt4.5.3 一
  7. How to: Create Custom Configuration Sections Using ConfigurationSection
  8. 8.最佳的MongoDB客户端管理工具
  9. git ---- 产生冲突的场景 和解决办法
  10. TurtleWorld Exercises