2011年8月7日
摘要: POJ_3308这个题目有点像二分图最小点集覆盖问题,但由于边带权,所以不能直接用二分图最大匹配来做。参考了别人的想法之后,发现构图的时候原来还是要用的二分图的思想,将行、列分别看做一个集合,由于最后求费用乘积的最小值,所以先传化成log2形式的费用,源点与行之间的容量初始化为log2行费用,列与汇点之间的容量初始化log2列费用。之后对读入的伞兵位置对应的行和列之间连一条有向边,容量为INF。 最后只要求一下最小割就可以了,也就是最大网络流。#include<stdio.h>#include<string.h>#include<math.h>double 阅读全文
posted @ 2011-08-07 14:31 Staginner 阅读(371) 评论(0) 推荐(0) 编辑