【网络流24题】试题库问题
Description
Input
Output
Sample Input
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 const int N=1205,INF=1999999999; 7 int gi(){ 8 int str=0;char ch=getchar(); 9 while(ch>'9'||ch<'0')ch=getchar(); 10 while(ch>='0' && ch<='9')str=str*10+ch-'0',ch=getchar(); 11 return str; 12 } 13 int n,m,S=0,T,num=1,head[N]; 14 struct Lin{ 15 int next,to,dis; 16 }a[N*N]; 17 void init(int x,int y,int z){ 18 a[++num].next=head[x]; 19 a[num].to=y; 20 a[num].dis=z; 21 head[x]=num; 22 a[++num].next=head[y]; 23 a[num].to=x; 24 a[num].dis=0; 25 head[y]=num; 26 } 27 int dep[N],q[N]; 28 bool bfs() 29 { 30 memset(dep,0,sizeof(dep)); 31 dep[S]=1;q[1]=S;int u,t=0,sum=1,x; 32 while(t!=sum) 33 { 34 x=q[++t]; 35 for(int i=head[x];i;i=a[i].next){ 36 u=a[i].to; 37 if(dep[u] || a[i].dis<=0)continue; 38 dep[u]=dep[x]+1;q[++sum]=u; 39 } 40 } 41 return dep[T]; 42 } 43 int dfs(int x,int flow) 44 { 45 if(x==T || !flow)return flow; 46 int u,tmp,sum=0; 47 for(int i=head[x];i;i=a[i].next){ 48 u=a[i].to; 49 if(dep[u]!=dep[x]+1 || a[i].dis<=0)continue; 50 tmp=dfs(u,min(flow,a[i].dis)); 51 a[i].dis-=tmp;a[i^1].dis+=tmp; 52 sum+=tmp;flow-=tmp; 53 if(!flow)break; 54 } 55 return sum; 56 } 57 int main() 58 { 59 int x,k,sum1=0; 60 m=gi();n=gi(); 61 T=n+m+1; 62 for(int i=1;i<=m;i++){ 63 x=gi();init(i+n,T,x);sum1+=x; 64 } 65 for(int i=1;i<=n;i++){ 66 init(S,i,1); 67 k=gi(); 68 for(int j=1;j<=k;j++)x=gi(),init(i,x+n,1); 69 } 70 int tot=0,tmp; 71 while(bfs()){ 72 tmp=dfs(S,INF); 73 while(tmp)tot+=tmp,tmp=dfs(S,INF); 74 } 75 if(tot<sum1){ 76 puts("No Solution!"); 77 return 0; 78 } 79 for(int i=1+n;i<=n+m;i++){ 80 printf("%d:",i-n); 81 for(int j=head[i];j;j=a[j].next) 82 if(a[j].to!=T && a[j].dis==1)printf(" %d",a[j].to); 83 puts(""); 84 } 85 return 0; 86 }
转载于:https://www.cnblogs.com/Yuzao/p/6872881.html
【网络流24题】试题库问题相关推荐
- COGS732. [网络流24题] 试题库
«问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法. «编程任 ...
- [网络流24题]试题库问题
[luogu 2763] 试题库问题 传送门 二分图多重匹配 建图方法: s=0,t=n+m+1 (1)S向第i个试题连边,容量为1,保证每个试题只被选一次 (2)第i个试题编号为i,向所属种类连边, ...
- liberOJ#6006. 「网络流 24 题」试题库 网络流, 输出方案
#6006. 「网络流 24 题」试题库 题目描述 假设一个试题库中有 n nn 道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取 m mm 道题组成试卷.并要求试卷 ...
- 解题报告:线性规划与网络流24题
目录 A.飞行员配对方案问题 (二分图最大匹配)(最大流)[提高+/省选- ] B.太空飞行计划问题(最大权闭合图转最小割.最小割方案输出)[省选/NOI- ] C.最小路径覆盖问题(有向无环图最小路 ...
- 「网络流24题」 题目列表
「网络流24题」 题目列表 序号 题目标题 模型 题解 1 飞行员配对方案问题 二分图最大匹配 <1> 2 太空飞行计划问题 最大权闭合子图 <2> 3 最小路径覆盖问题 二分 ...
- 【算法】【网络流24题】巨坑待填(成功TJ,有时间再填)
------------------------------------------------------------------------------------ 17/24 --------- ...
- 【题解】网络流24题一句话题解集合
最近写了下<线性规划与网络流24题>,发下代码和题解,事实上就是将交给cycycy的题解复制一下 T1 飞行员配对方案问题 solution 裸的匈牙利 code #include< ...
- cwl的网络流24题练习
网络流24题 编号 题目 备注 1 飞行员配对方案问题 二分图最大匹配,可最大流解决 2 太空飞行计划问题 3 最小路径覆盖问题 有向图最小路径覆盖,解法都写题目上了 4 魔术球问题 有向图最 ...
- 「网络流24题」 12. 软件补丁问题
「网络流24题」 12. 软件补丁问题 状压 DP,SPFA 转移. 没错,跟网络流没任何关系. b1.b2.f1.f2 都用二进制存下来,第 i 位表示是否有这个错误. 然后从每位都是 1 到 0 ...
- loj #6226. 「网络流 24 题」骑士共存问题
#6226. 「网络流 24 题」骑士共存问题 题目描述 在一个 n×n\text{n} \times \text{n}n×n 个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些 ...
最新文章
- 10月21日!API 大赛决赛暨移动云开发者论坛邀您见证数字创新的力量
- php或js判断网站访问者来自手机或者pc端源码
- 计算机发现概述教案,计算机网络概述教案
- 火的不要不要的公有云和私有云都是什么鬼?
- Linux errno 列表
- IBM服务器巡检流程
- DevExpress.Utils.ToolTipLocation
- ActiveMQ(07):ActiveMQ结合Spring开发--建议
- 万紫千红总是春的上一句是什么,万紫千红总是春全诗赏析
- 慢慢的,就没有了,就像从未存在过(转载)
- 信号量内核对象 semaphore
- 在Winform开发框架中实现对数据库的加密支持(转)
- 51单片机学习历程(二)快速入门51单片机
- Quartus17.0 + ModelSim - IntelFpga安装及破解
- 云计算安全需求分析与网络
- 计算机一级汉字录入在线联系,计算机一级考试指导:汉字录入题的操作(3)
- 开心的小明-动态规划算法
- c语言cl.exe,cl.exe
- 禁闭岛》剧情全解,结局只有一个,导演小细节处...
- java的万里长征之第一步
热门文章
- 斯坦福大学Andrew Ng - 机器学习笔记(3) -- 神经网络模型
- ubuntu install opengl
- IOS-webService
- 上海巨人网络参与网络诈骗整个流程
- java实现qq_java实现的类似qq聊天系统
- linux下find命令用法
- OVS对VXLAN报文解封包
- linux查看apache端口,linux系统下Apache服务启动时80端口报错
- uniapp怎么引入css_uniapp - css样式设置scoped
- python安装venv_Python创建virtualenv(虚拟环境)方法及安装Ubuntu