摘要: 将每个点拆分成原点A与伪点B,A->B有两条单向路(邻接表实现时需要建立一条反向的空边,并保证环路费用和为0),一条残留容量为1,费用为本身的负值(便于计算最短路),另一条残留容量+∞,费用为0(保证可以多次通过该点,但费用只计算一次)。   另外伪点B与原点右侧与下方的点有一条单向路(邻接表实现需要建立反向空边),残留容量为+∞,费用为0。源点0到点1有一条单向路,残留容量为K(可以通过K次),最后一个点的伪点2*n*n与汇点2*n*n+1有一条单向边,残留容量为K,两条边的费用都为0。 阅读全文
posted @ 2016-07-29 17:30 文字失效 阅读(398) 评论(0) 推荐(0) 编辑
摘要: //以行列建点,伞兵位置为单向边-利用对数将乘积转加法 //最小割转最大流 //Time:63Ms Memory:792K #include #include #include #include #include #include using namespace std; #define MAXN 105 #define INF 100000 #define EPS 1e-7 int... 阅读全文
posted @ 2016-07-29 09:41 文字失效 阅读(287) 评论(0) 推荐(0) 编辑