分析

最大权闭合子图模板题

把实验获得的收益看成正权点,仪器费用看成负权点,每个实验向所需要的仪器连边

跑最大权闭合子图即可

详见https://www.cnblogs.com/birchtree/p/10304793.html

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#define maxn 110
#define maxm 10005
#define INF 0x7fffffff
using namespace std;
int n,m;
int p[maxn];
int c[maxn];
struct edge{int from;int to;int next;
}E[maxm<<1];
long long flow[maxm];
int head[maxn];
int sz=1;
void add_edge(int u,int v,int w){
//  printf("%d->%d %d\n",u,v,w);sz++;E[sz].from=u;E[sz].to=v;E[sz].next=head[u];head[u]=sz;flow[sz]=w;
}int deep[maxn];
int bfs(int s,int t){queue<int>q;memset(deep,0,sizeof(deep));deep[s]=1;q.push(s);while(!q.empty()){int x=q.front();q.pop();for(int i=head[x];i;i=E[i].next){int y=E[i].to;if(flow[i]&&!deep[y]){deep[y]=deep[x]+1;q.push(y);if(y==t) return 1;} }}return 0;
}long long dfs(int x,int t,long long minf){if(x==t) return minf;long long rest=minf,k;for(int i=head[x];i;i=E[i].next){int y=E[i].to;if(flow[i]&&deep[y]==deep[x]+1){k=dfs(y,t,min(rest,flow[i]));if(k==0) deep[y]=0;flow[i]-=k;flow[i^1]+=k;rest-=k;}}return minf-rest;
}long long dinic(int s,int t){long long maxflow,nowflow;maxflow=0;while(bfs(s,t)){while(nowflow=dfs(s,t,INF)){maxflow+=nowflow;}}return maxflow;
}vector<int>ans;
int main(){int x;char ch;long long tot=0;scanf("%d %d",&m,&n);for(int i=1;i<=m;i++){scanf("%d",&p[i]);tot+=p[i];while(scanf("%d%c",&x,&ch)!=EOF){add_edge(i,x+m,INF);add_edge(x+m,i,0);if(ch=='\n'||ch=='\r') break;}}for(int i=1;i<=n;i++) scanf("%d",&c[i]);for(int i=1;i<=m;i++){add_edge(0,i,p[i]);add_edge(i,0,0);} for(int i=1;i<=n;i++){add_edge(i+m,m+n+1,c[i]);add_edge(m+n+1,i+m,0);}long long res=tot-dinic(0,m+n+1);for(int i=1;i<=m;i++){if(deep[i]!=0){ans.push_back(i);}}for(int i=0;i<ans.size();i++){printf("%d",ans[i]);if(i!=ans.size()-1) printf(" ");else printf("\n");}ans.clear();for(int i=m+1;i<=m+n;i++){if(deep[i]!=0){ans.push_back(i-m);}}for(int i=0;i<ans.size();i++){printf("%d",ans[i]);if(i!=ans.size()-1) printf(" ");else printf("\n");}printf("%lld\n",res);
}

转载于:https://www.cnblogs.com/birchtree/p/10430859.html

[网络流24题]太空飞行计划相关推荐

  1. Cogs 727. [网络流24题] 太空飞行计划(最大权闭合子图)

    [网络流24题] 太空飞行计划 ★★☆ 输入文件:shuttle.in 输出文件:shuttle.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] W 教授正在为国家航天中心计 ...

  2. 线性规划与网络流24题 太空飞行计划问题 (最小割及输出方案)

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

  3. 网络流24题-太空飞行计划

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

  4. 【网络流24题】餐巾计划问题(最小费用最大流)

    [网络流24题]餐巾计划问题(最小费用最大流) 题面 COGS 洛谷上的数据范围更大,而且要开longlong 题解 餐巾的来源分为两种: ①新买的 ②旧的拿去洗 所以,两种情况分别建图 先考虑第一种 ...

  5. 【hjmmm网络流24题补全计划】

    本文食用方式 按ABC--分层叙述思路 可以看完一步有思路后自行思考 飞行员配对问题 题目链接 这可能是24题里最水的一道吧... 很显然分成两个集合 左外籍飞行员 右皇家飞行员 跑二分图最大匹配 输 ...

  6. 【网络流24题补全计划】

    本文食用方式 按ABC--分层叙述思路 可以看完一步有思路后自行思考 飞行员配对问题 题目链接 这可能是24题里最水的一道吧... 很显然分成两个集合 左外籍飞行员 右皇家飞行员 跑二分图最大匹配 输 ...

  7. 网络流24题之餐巾计划问题

    题目链接:传送门 时间有点赶,所以写的简略一些了. dalao:这道题不是看看就出来了吗? me:这道题十分难想啊!!!!图好难建啊!!!!但是想到以后就是一个裸题啊!! 要拆点,将每天拆为早上和晚上 ...

  8. [网络流24题][CODEVS1237]餐巾计划问题(费用流)

    题目描述 传送门 题解 拆点,把每天的点拆成xi和yi,xi表示每一天的脏毛巾,yi表示每一天的新毛巾. 从超级源向xi连边,容量为ri,费用为0: 从yi向超级汇连边,容量为ri,费用为0: 从超级 ...

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

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

最新文章

  1. LeetCode 5 最长回文子串
  2. 谷歌提出新型卷积网络EfficientNet: 推理速度升5.1倍参数减少88%,需要我们的验证
  3. net 快速打印日志
  4. Mysql中group by 使用中发现的问题
  5. LeetCode 845. 数组中的最长山脉(中心扩展)
  6. keras构建卷积神经网络_通过此简单教程学习在网络上构建卷积神经网络
  7. 把服务器文件,如何把文件放在服务器
  8. SSH 框架 没加commons-beanutils-1.7.0.jar包的错误提示
  9. 《HTML5移动Web开发实战》—— 1.6 在移动网站中使用HTML5
  10. python中日期使用_在Python中使用日期时间的每月总金额
  11. Pulseaudio之nemo(二十二)
  12. 【渝粤教育】广东开放大学 知识产权法 形成性考核 (44)
  13. Centos上安装jdk版本出错的问题
  14. 基于DEM,Lumion和WorldMachine的地形三维可视化
  15. 怎么把png转换jpeg?png如何转其他格式?
  16. Elasticsearch之快速入门篇(个人笔记)
  17. Django框架之视图函数views
  18. ALLHIC使用 | HiC辅助基因组组装(三)
  19. Access Token机制简单介绍
  20. 《海外社交媒体营销》一一第1章 电商创业起步

热门文章

  1. vue之父子组件通信
  2. 【转载】SpringBoot系列——Swagger2
  3. get_called_class与get_class
  4. 最近开机老是弹出网银插件的问题
  5. 第三次小组赛解题报告
  6. 自动编译和提交脚本(结合svn和visual studio)
  7. 一个在Windows下的ping脚本(使用WMI 的Win32_PingStatus 实现)
  8. Android的***.sh的开机服务添加
  9. 打包python程序发布_Python代码的打包与发布详解
  10. Cube 技术解读 | 详解「支付宝」全新的卡片技术栈