码迷,mamicode.com
首页 > 其他好文 > 详细

【巨坑】【网络流】线性规划与网络流24题

时间:2016-02-21 21:16:17      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

2016.2.21

01。飞行员配对方案问题(习题 8-10)

  每一条边连接外籍-国内飞行员,显然是一个二分图,最多出发的飞机数,对应着最多的边匹配。

  问题转化为经典的二分图匹配问题,可以用匈牙利或者网络流。

  源点和每一个外籍飞行员、每一个国内飞行员和汇点、每个可行的配合之间连接一条容量为1的有向边。

  可以派出的最多飞机数就是这个网络的最大流

  建图部分代码

1 for(;;){
2     int a,b,c;
3     a=read();b=read();
4     if(a==-1&&b==-1)    break;
5     insert(a,b,1);
6 }
7 for(int i=1;i<=m;i++)    insert(n+1,i,1);
8 for(int i=m+1;i<=n;i++)    insert(i,n+2,1);

  对于方案。。其实我们可以在增广的时候做标记的,但是反正比较懒套个模板嘛~

  在时候枚举一下飞行员之间边,如果他的容量被修改为0了。那么这就是一对一对

1 for(int i=1;i<=m;i++){
2     for(int j=last[i];j;j=e[j].next){
3         if(e[j].v==0&&e[j].to<=n){
4             printf("%d %d\n",i,e[j].to);
5             break;
6         }
7     }
8 }//2016.2.21
02 太空飞行计划问题

  大概想了一下,连接实验和所需的实验器材,容量是inf,连接源点和每个实验,容量是实验经费,连接器材和汇点,容量是器材费用

  然后算算好像答案是这个网络的最小割?写个最小割就好了

  考虑对于每个实验,如果这个子图的割在器材-汇之间,说明他是赚钱的,否则是赔钱的(好像不太对?想不出证明)  2016.2.21

 

03
04
 

【巨坑】【网络流】线性规划与网络流24题

标签:

原文地址:http://www.cnblogs.com/oierforever/p/5205546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!