http://acm.hust.edu.cn/vjudge/contest/view.action?cid=56305#overview

A.
模板题
每个小人到每个房子都建一条边,容量为1,权值为小人到房子的距离。
S->每个小人建一条边。
每个房子->T建一条边。

B.
题意是给一个图。这个图中每一个点都一定会属于一个子图,这个子图是哈密顿回路(走过每个点有且仅一次)。
这道题和以前做过的一道网络流题目很相似。。
把点i拆成两个点 i掌管入边 i’掌管出边 如果存在i->j的话就是i’->j
毕竟一个点只有一个出度和一个入度。
S->i
i’->T
跑费用流。完、

C.
题意是给一个无向图。删除某些边后的子图是哈密顿回路(走过每一个点有仅一次),并且使这个子图的权值最小。
做法同上、不过要注意的是无向图。

D.
题意是给一个有向图。求x个子图(所有子图的点的集合是n)是哈密顿回路的这x个子图的权值之和最小。
做法同B

E.
这题很经典。。给个矩阵,从左上角走到右下角最大值。
可以用dp做。。没想到可以用费用流。不过想一想还是挺合理的。
把它看做。有两个人,从左上角往右下角走,路线不能交叉。跑最小费用流。。

F.
这题就是E的加强版数据。

G.
好题。。拆边的思想。。
aix^2 这个式子。令f(x)=aix^2,经过观察f(x)是上升的(f(x)的导函数>0),并且f(x+1)-f(x)也是上升的(f(x+1)-f(x)的导函数>0)
满足这两个条件就可以拆边了。
ps:如果x太大了怎么破?

H.
有两个人S和X,S有N个怪兽,X也有N个怪兽。S的每个怪兽都有相应的血量和攻击力,X的也是。S的怪兽先攻击,S可以任意调顺序和X的怪兽打。Si如果打赢了可以获得Vi分,否则失去Vi分。问能打赢获得的最大分数。

有点像二分图带权匹配。。直接建图。

I.
。。。拆点。每条鱼只能攻击一次和被攻击一次。建图。

J.
题意读懂直接建图。

K.
欧拉通路。
删掉一些边使有向图变成欧拉通路。s和t都已告诉。
删掉边的代价为b,保留的代价为a。
可以观察a和b的值,
b>=a的话就留下来。总花费加上a,v->u的花费为b-a。因为如果走这条边,那么就代表要删除这条边,删掉这条边增加的花费为b-a
b<a的话就删掉它。总花费加上b,u->v的花费为a-b。因为如果走这条边,那么就代表要保留这条边,保留这条边要增加花费为a-b
计算出每个点的出度和入度之差=k。
如果k>0,则代表出度大于入度。需要增加出度减少入度。s->i建边。流量为k
如果k<0,则代表出度小于入度。需要增加入股减少出度。i->t建边。流量为-k
然后跑费用流。判满流则有解。

L.
流量不等式建图。同2008 NOI 志愿者招募那题。算是神题。

M.
已发。

N.
已发。