原题链接

Description

有m(m≤50)个实验和n(n≤50)个仪器,做实验有报酬买仪器有花费。每个实验都需要一些仪器,求最大净收益(实验报酬−仪器花费),并输出一组方案。

Solution

实验所需仪器连边,实验的点权是其报酬,仪器的点权是其花费的相反数,这样构成一张带权图。所求的就是这个图的最大权闭合图。
关于最大权闭合图的求法及其证明,请参照胡泽涛的《最小割模型在信息学竞赛中的应用》P16。

Code

//「网络流 24 题」太空飞行计划
#include <cstdio>
#include <cstring>
int const N=100+10;
int const INF=0x7FFFFFFF;
int m,n;
int s,t; int cnt,h[N];
struct edge{int v,c,nxt;} ed[N*N];
void edAdd(int u,int v,int c)
{cnt++; ed[cnt].v=v,ed[cnt].c=c,ed[cnt].nxt=h[u],h[u]=cnt;cnt++; ed[cnt].v=u,ed[cnt].c=0,ed[cnt].nxt=h[v],h[v]=cnt;
}
int dpt[N]; int op,cl,q[N];
bool bfs()
{op=cl=0; memset(dpt,0,sizeof dpt);dpt[q[++cl]=s]=1;while(op<cl){int u=q[++op]; if(u==t) break;for(int i=h[u];i;i=ed[i].nxt){int v=ed[i].v,c=ed[i].c;if(!dpt[v]&&c) dpt[q[++cl]=v]=dpt[u]+1;}}return dpt[t];
}
int min(int x,int y) {return x<y?x:y;}
int fill(int u,int in)
{if(u==t||in==0) return in;int out=0;for(int i=h[u];i;i=ed[i].nxt){int v=ed[i].v,c=ed[i].c;if(dpt[v]!=dpt[u]+1||!c) continue;int fl=fill(v,min(c,in-out));if(!fl) dpt[v]=0;else out+=fl,ed[i].c-=fl,ed[i^1].c+=fl;if(in==out) return out;}return out;
}
int Dinic()
{int ans=0;while(bfs()) ans+=fill(s,INF);return ans;
}
bool buy[N];
int main()
{scanf("%d%d",&m,&n); s=0,t=n+m+1; cnt=1;int ans=0; for(int i=1;i<=m;i++){int c=0; scanf("%d",&c);ans+=c; edAdd(s,i,c);while(true){char ch=getchar(); if(ch=='\n'||ch=='\r') break;int x; scanf("%d",&x); edAdd(i,m+x,INF);}}for(int i=1;i<=n;i++) {int c; scanf("%d",&c); edAdd(m+i,t,c);}ans-=Dinic();for(int i=1;i<=m;i++) if(dpt[i]) printf("%d ",i); printf("\n");for(int i=1;i<=n;i++) if(dpt[i+m]) printf("%d ",i); printf("\n");printf("%d\n",ans);return 0;
}

P.S.

又是鬼畜的输入格式…

转载于:https://www.cnblogs.com/VisJiao/p/8485755.html

LOJ6001 - 「网络流 24 题」太空飞行计划相关推荐

  1. LibreOJ #6001. 「网络流 24 题」太空飞行计划 最大权闭合图

    #6001. 「网络流 24 题」太空飞行计划 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测 ...

  2. 「网络流 24 题」太空飞行计划

    题目描述 W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合 E={E1,E2,⋯,Em} E = \{ E_1, E_2, ...

  3. 题解 【网络流24题】太空飞行计划

    [网络流24题]太空飞行计划 Description W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,- ...

  4. [网络流24题] No2_太空飞行计划

    727. [网络流24题] 太空飞行计划 ★★☆   输入文件:shuttle.in   输出文件:shuttle.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] W ...

  5. 网络流24题之太空飞行计划——最大权闭合子图

    题目链接:太空飞行计划 [网络流24题] 太空飞行计划 ★★☆ 输入文件:shuttle.in 输出文件:shuttle.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] W ...

  6. 题解:线性规划与网络流24题 T2 太空飞行计划问题

    太空飞行计划问题 问题描述 W教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,-,Em},和进行这些实验需要 ...

  7. 网络流24题——2.太空飞行计划问题

    题目链接 https://www.luogu.org/problemnew/show/P2762 太空飞行计划 我们从S向所有实验连流量为收入的边(割这条边选择不做这个实验) 从所有的机器向T连边(割 ...

  8. 线性规划与网络流24题 2太空飞行计划问题 最大权闭合图问题(不懂) nefu 476

    太空飞行计划问题 Time Limit 1000ms Memory Limit 65536K description W教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而 ...

  9. 【网络流24题】太空飞行计划问题

    问题描述 W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业 性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,-,Em},和进行这 些实验需要使用的全部仪 ...

最新文章

  1. 听说是sun的一题面试题(关于自增运算符的)
  2. 如何转换指定 波长 到 RGB 颜色?
  3. 这三篇论文开源了!何恺明等人的PointRend,Hinton组的SimCLR和谷歌大脑的EfficientDet...
  4. 魔方游戏实现:任意阶魔方的表示
  5. 隐藏的iscroll元素显示后不能滚动问题
  6. TF下载量已超4600万!首届TensorFlow World大会,谷歌大牛Jeff Dean激情演讲
  7. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨1.37%
  8. 实验报告-python文库_Python实验报告
  9. python软件下载中文版-PyCharm中文版
  10. 连续区间(数据岛)查询
  11. paip.提升用户体验与安全性----登录与权限流程总结
  12. web安全的一些专业术语介绍
  13. php微信转发无法显示标题图片,完美解决:微信分享为什么不显示图片呢? - 老牛博客...
  14. oracle 左连接 简写,SQL左连接
  15. ajax页面 js文件上传,jQuery插件ajaxfileupload.js实现上传文件
  16. Windows支持WGET命令
  17. android RatingBar基本使用介绍
  18. 超强技巧分享,如何将人民币大小写转换?
  19. Visio画UML类图
  20. WideDeep论文翻译

热门文章

  1. java中lockprocess_java – 使用Processbuilder运行jar无法正常工作
  2. Springboot项目修改文件传输(minio)限制大小
  3. 《孙子兵法》国学智慧
  4. 【运维项目】零基础小白也能学会的运维项目
  5. OSChina 周五乱弹 ——什么情况下两个人之间的距离能成为负数
  6. 统计_偏态、峰值(Datawhale概率统计温习2)
  7. 【C++】C++数组初始化方法
  8. LED应用于非照明领域的技术趋势
  9. 一种能人类大脑信息解读成声音信息的人工智能
  10. 逐梦....圈圈圈圈圈