UVA - 10779 Collectors Problem
经典的根据题目描述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相关推荐
- UVa10779 - Collectors Problem(最大流)
题目链接 简介:交换贴纸 分析: 这也算是一个天坑了 很久之前就看过这道题,但是一直没有填 美妙的建图: 我们用n-1个点表示每个除Bob之外的人 用m个点表示贴纸,从源点向这m个点连边,边的容量是B ...
- UVA 11991——Easy Problem from Rujia Liu?
题意:给定一个数组,然后有若干组询问,每次询问求第k个v出现的位置. 思路:用vector构造模拟,吧相同的数的位置放在同一个vector里,对于每次查询输出mp[v][x-1]; code: #in ...
- UVa Online Judge 工具網站
UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...
- 《挑战程序设计竞赛(第2版)》习题册攻略
本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...
- sicily题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- [sicily]部分题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- Sicily 题目分类
依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...
- 编程题目分类(剪辑)
1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...
- 刘汝佳训练指南《网络流》专题 BY 9974
最近一直在做白书上的网络流, 做得几乎差不多了,在这小小总结一下. 已经忽略很水的题.差不多按难度排序了. UVa 11248 增广小优化. UVa 1306(LA ...
最新文章
- src is not broadcastable to dst, but they have the same number of elements
- windows ce 5.0 + vs2005 + sql数据库_开发注意事项
- 【翻译】Apache Hbase新特性--MOB支持(一)
- ICML 2020 | 第四范式基于AutoML的深度网络记忆性自动化挖掘
- 快速制作U盘WIN PE启动盘简易指南
- 数据结构---平衡二叉树
- linux防火墙开启某端口命令行,linux上防火墙 开启某个端口
- 用redis实现延迟队列
- SAS在金融中的应用二
- DataSet与DataReader的区别
- WCF中因序列化问题引起的异常和错误。
- java string debug_java 中 string 对象
- SQL Server分布式事务配置(MSDTC)(远程数据库更新)
- cocos2d-x游戏开发 《坠入蔚蓝》
- 国王匿名信息服务器,扮国王还是卫兵? 角色扮演服务器登录美服
- uni-app微信小程序扫普通二维码分享小程序
- 当出现Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this
- elasticsearch2.1部署
- 一本通1603绿色通道
- [Wi-Fi抓包篇]2. Omnipeek——抓包分析方法