经典的根据题目描述yy连边的网络流hhhh,几乎可以说是模拟了

#include<bits/stdc++.h>
#define ll long long
#define pb push_back
const int maxn=55;
const int inf=1<<30;
using namespace std;
vector<int> g[maxn];
struct lines{int to,flow,cap;
}l[maxn*2333];
int t=-1,S,T,d[maxn],cur[maxn];
bool v[maxn];inline void add(int from,int to,int cap){l[++t]=(lines){to,0,cap},g[from].pb(t);l[++t]=(lines){from,0,0},g[to].pb(t);
}inline bool BFS(){queue<int> q;memset(v,0,sizeof(v));q.push(S),v[S]=1,d[S]=0;int x; lines e;while(!q.empty()){x=q.front(),q.pop();for(int i=g[x].size()-1;i>=0;i--){e=l[g[x][i]];if(e.flow<e.cap&&!v[e.to]){v[e.to]=1,d[e.to]=d[x]+1;q.push(e.to);}}}return v[T];
}int dfs(int x,int A){if(x==T||!A) return A;int flow=0,f,sz=g[x].size();for(int &i=cur[x];i<sz;i++){lines &e=l[g[x][i]];if(d[x]==d[e.to]-1&&(f=dfs(e.to,min(e.cap-e.flow,A)))){A-=f,flow+=f;e.flow+=f,l[g[x][i]^1].flow-=f;if(!A) break;}}return flow;
}inline int max_flow(){int an=0;while(BFS()){memset(cur,0,sizeof(cur));an+=dfs(S,1<<30);}return an;
}int N,M,Q,now,num[13][45];inline void init(){t=-1,memset(num,0,sizeof(num));for(int i=0;i<=T;i++) g[i].clear();
}inline void build(){for(int i=1;i<=M;i++) add(S,i,num[1][i]),add(i,T,1);for(int i=2;i<=N;i++)for(int j=1;j<=M;j++)if(!num[i][j]) add(j,i+M,1);else if(num[i][j]>1) add(i+M,j,num[i][j]-1);
}int main(){scanf("%d",&Q);for(int O=1;O<=Q;O++){init(),scanf("%d%d",&N,&M),T=M+N+1;for(int i=1;i<=N;i++){scanf("%d",num[i]);for(int j=1;j<=num[i][0];j++) scanf("%d",&now),num[i][now]++;}build();printf("Case #%d: %d\n",O,max_flow());}return 0;
}

  

转载于:https://www.cnblogs.com/JYYHH/p/8907597.html

UVA - 10779 Collectors Problem相关推荐

  1. UVa10779 - Collectors Problem(最大流)

    题目链接 简介:交换贴纸 分析: 这也算是一个天坑了 很久之前就看过这道题,但是一直没有填 美妙的建图: 我们用n-1个点表示每个除Bob之外的人 用m个点表示贴纸,从源点向这m个点连边,边的容量是B ...

  2. UVA 11991——Easy Problem from Rujia Liu?

    题意:给定一个数组,然后有若干组询问,每次询问求第k个v出现的位置. 思路:用vector构造模拟,吧相同的数的位置放在同一个vector里,对于每次查询输出mp[v][x-1]; code: #in ...

  3. UVa Online Judge 工具網站

    UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...

  4. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  5. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  6. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  7. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  8. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  9. 刘汝佳训练指南《网络流》专题 BY 9974

    最近一直在做白书上的网络流, 做得几乎差不多了,在这小小总结一下. 已经忽略很水的题.差不多按难度排序了. UVa 11248                   增广小优化. UVa 1306(LA ...

最新文章

  1. src is not broadcastable to dst, but they have the same number of elements
  2. windows ce 5.0 + vs2005 + sql数据库_开发注意事项
  3. 【翻译】Apache Hbase新特性--MOB支持(一)
  4. ICML 2020 | 第四范式基于AutoML的深度网络记忆性自动化挖掘
  5. 快速制作U盘WIN PE启动盘简易指南
  6. 数据结构---平衡二叉树
  7. linux防火墙开启某端口命令行,linux上防火墙 开启某个端口
  8. 用redis实现延迟队列
  9. SAS在金融中的应用二
  10. DataSet与DataReader的区别
  11. WCF中因序列化问题引起的异常和错误。
  12. java string debug_java 中 string 对象
  13. SQL Server分布式事务配置(MSDTC)(远程数据库更新)
  14. cocos2d-x游戏开发 《坠入蔚蓝》
  15. 国王匿名信息服务器,扮国王还是卫兵? 角色扮演服务器登录美服
  16. uni-app微信小程序扫普通二维码分享小程序
  17. 当出现Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this
  18. elasticsearch2.1部署
  19. 一本通1603绿色通道
  20. [Wi-Fi抓包篇]2. Omnipeek——抓包分析方法

热门文章

  1. java8之list集合中取出某一属性的方法
  2. 分布式、集群的概念、区别
  3. SQLSERVER:sqlserver2008r2安装好后,自动提示功能不可以使用
  4. 红外解码软件 android,一文教会你红外线遥控器软件解码程序
  5. qprocess 最小化启动外部程序_安川机器人预约启动功能
  6. (201)数字6种表示方式
  7. (125)FPGA面试题-熟悉AXI总线吗,介绍AXI
  8. (74)信号发生器DDS三角波设计(二)(第15天)
  9. (44)VHDL实现多路复用器(if-else)
  10. (77)FPGA时钟激励(always)