思路:

神建图

源->饮料 边权为1

牛拆点 两个点之间的边权为1

饮料->左牛 边权为1

右牛->食品 边权为1

食品->汇边权为1

  1. //By SiriusRen
  2. #include <queue>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <algorithm>
  6. using namespace std;
  7. const int N=4444,M=666666;
  8. int n,f,d,jyx,jyy,jy,T,first[N],vis[N],next[M],v[M],w[M],tot,ans;
  9. void Add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
  10. void add(int x,int y,int z){Add(x,y,z),Add(y,x,0);}
  11. bool tell(){
  12. memset(vis,-1,sizeof(vis)),vis[0]=0;
  13. queue<int>q;q.push(0);
  14. while(!q.empty()){
  15. int t=q.front();q.pop();
  16. for(int i=first[t];~i;i=next[i])
  17. if(!~vis[v[i]]&&w[i])
  18. vis[v[i]]=vis[t]+1,q.push(v[i]);
  19. }return ~vis[T];
  20. }
  21. int zeng(int x,int y){
  22. if(x==T)return y;
  23. int r=0;
  24. for(int i=first[x];~i&&y>r;i=next[i])
  25. if(vis[v[i]]==vis[x]+1&&w[i]){
  26. int t=zeng(v[i],min(y-r,w[i]));
  27. w[i]-=t,w[i^1]+=t,r+=t;
  28. }
  29. if(!r)vis[x]=-1;
  30. return r;
  31. }
  32. int main(){
  33. memset(first,-1,sizeof(first));
  34. scanf("%d%d%d",&n,&f,&d),T=2*n+f+d+1;//n->cow f->eat d->drink
  35. for(int i=1;i<=f;i++)add(0,2*n+i,1);
  36. for(int i=1;i<=d;i++)add(2*n+f+i,T,1);
  37. for(int i=1;i<=n;i++){
  38. scanf("%d%d",&jyx,&jyy),add(i,i+n,1);
  39. while(jyx--)scanf("%d",&jy),add(2*n+jy,i,1);
  40. while(jyy--)scanf("%d",&jy),add(i+n,2*n+f+jy,1);
  41. }
  42. while(tell())while(jy=zeng(0,0x3fffffff))ans+=jy;
  43. printf("%d\n",ans);
  44. }

BZOJ 1711 网络流的更多相关文章

  1. BZOJ 1711: [Usaco2007 Open]Dining吃饭

    1711: [Usaco2007 Open]Dining吃饭 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 902  Solved: 476[Submit ...

  2. bzoj 1711 [Usaco2007 Open]Dining吃饭&&poj 3281 Dining

    最大流. 这东西好像叫三分图匹配. 源点向每个食物点连一条容量为1的边. 每个饮料点向汇点连一条容量为1的边. 将每个牛点拆点,食物点向喜欢它的牛的入点连一条容量为1的边,牛的出点向它喜欢的饮料点连一 ...

  3. BZOJ 1711: [Usaco2007 Open]Dingin吃饭( 最大流 )

    将牛拆成两个点 i 和 i' 并连弧 , S 向每种 food 连边 , 每种 drink 向 T 连边 , 每种 food 向喜欢他的 cow 连边 到 i , 每种 drink 从喜欢它的 cow ...

  4. BZOJ 1711:[Usaco2007 Open]Dining吃饭(最大流)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1711 [题目大意] 每头牛都有一些喜欢的饮料和食物, 现在有一些食物和饮料,但是每样只 ...

  5. bzoj 1711 Dining吃饭 —— 最大流

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1711 食物一列,牛拆点,饮料一列. 代码如下: #include<cstdio> ...

  6. BZOJ 1711 吃饭dining/Luogu P1402 酒店之王 拆点+最大流流匹配

    题意: (吃饭dining)有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料.现在有n头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享 ...

  7. BZOJ 2929 网络流

    题意是啥--. 思路: 不是与1或n连起来的边 边权是1 否则是inf 跑网络流 //By SiriusRen #include <queue> #include <cstdio&g ...

  8. BZOJ 1797 网络流的可行边&必须边

    求完网络流以后 tarjan一发 判一判 //By SiriusRen #include <queue> #include <bitset> #include <cstd ...

  9. BZOJ 3931 (网络流+最短路)

    题面 传送门 分析 考虑网络流 注意到数据包走的是最短路,所以我们只需要考虑在最短路上的边 由于最短路可能有多条,我们先跑一遍Dijkstra,然后再\(O(m)\) 遍历每条边(u,v,w) 如果d ...

随机推荐

  1. C++11新特性应用--介绍几个新增的便利算法(用于分区的几个算法)

    今天继续. C++11新增的关于Non-modifying sequence operations和Modifying sequence operations的算法已经写了.具体信息见之前的博客. 以 ...

  2. Android 开发之集成百度地图的定位与地图展示

    app 应用中,大多数应用都具有定位功能,百度定位就成了开发人员的集成定位功能的首选,近期也在做定位功能,可是发现百度真是个大坑啊, sdk 命名更新了,相关代码却不更新,害得我花费了非常长时间来研究 ...

  3. Codeforce 163 A. Substring and Subsequence DP

    A. Substring and Subsequence   One day Polycarpus got hold of two non-empty strings s and t, consist ...

  4. CoreData(数据库升级 )版本迁移-iOS App升级安装

    版权声明:本文为博主原创文章,未经博主允许不得转载. 如果IOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表.字段等操作),那在覆盖安装程序时就要进行CoreData数据库 ...

  5. MHA+ProxySQL 读写分离高可用

    文档结构如下: 1.ProxySQL说明 ProxySQL是mysql的一款中间件的产品,是灵活的mysql代理层,可以实现读写分离,支持query路由器的功能,支持动态指定sql进行缓存,支持动态加 ...

  6. iframe 高度宽度自适应

    <iframe id="iframeHome" name="iframeHome" src="/Page/NewHome/GongZuoTai. ...

  7. Ubuntu14.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  8. setUserVisibleHint的使用.执行顺序和viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment

    处理问题一:viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment的原因(源码解读); 处理问题二:setUserVisibleHint的使用场 ...

  9. utf8 string

    https://github.com/BassLC/idUTF8lib Idiot's UTF-8 Library A very (too much really) simple Utf8 libra ...

  10. c++类模板初探

    #include <iostream> #include <string> using namespace std; // 你提交的代码将嵌入到这里 ; template &l ...