网络流
文章平均质量分 50
Le_ballon_rouge
我是最讨厌、最粗鲁、最无知的人、彻头彻尾的讨厌鬼,任何人遇到我都是一种不幸。我轻视美德、无视美、不了解幸福。
展开
-
CODEVS1227
几乎就是裸的费用流。 对于点(i,j),我们使用拆点法,从(i,j,0)向(i,j,1)连两条边,一条cap为1,cost为-w(i,j),另一条cap为无穷大,cost为0。 再对点(i,j),向(i+1,j),(i,j+1)连边,cap为无穷大,cost为0。 代码上的小细节见下。#include <cstdio>#include <cstdlib>#include <cmath>#原创 2015-06-18 12:08:30 · 750 阅读 · 0 评论 -
BZOJ1059
传送门:BZOJ1059有趣的题目。做法是二分图完美匹配,其实看到题就可以隐约猜到是把行和列连边。建图方法是把黑点(i,j)的行i向列j连一条边,这显然是一个二分图模型,判断有无完美匹配即可。看上去很符合直觉,下面我来展示它的严谨证明。在证明这个算法的正确性前,首先证明一个引理[1]:设n阶方阵中有n个点,它们互不在同一列也互不在同一列,则可用这n个点构造出n阶的目标矩阵。首先断言:任意两个同一列的原创 2015-08-27 19:40:46 · 1112 阅读 · 0 评论 -
CODEVS1033
上大师以后的第一道题就是水题。还记得方格取数那道题吗?和它很像。其实轨迹不相交这个要求就等于某一个点不能经过两次,因为所有轨迹可能的交点都落在某一个点上。这个引理好像可以用Minkowski定理做出来,不过没那么麻烦。两条轨迹相交不落在格点上,意味着这两条轨迹的落点坐标相差必然大于等于一。如这两条轨迹向量在这两层中同向,则这标志着其中一个轨迹向量跨越了超过两格。如不同向,则依然标志着跨越了超过两格。原创 2015-07-23 21:24:21 · 858 阅读 · 0 评论