[bzoj2132]圈地计划

题目大意

有个N*M的矩形,每个区域可以建造商业区或工业区,分别获得Ai,j和Bi,j的收益。一个格子如果有与其相邻的k个格子与其类型不同,则可以带来Ci,j的收益。求最大收益

二元关系

我们可知,i,j和k,l两个格子类型不同就会带来Ci,j+Ck,l的收益。
这是经典的二元关系,是网络流问题。

X选商业 X选工业
Y选商业 AX+AY BX+AY+CX+CY
Y选工业 AX+BY+CX+CY BX+BY
#最大获益 我们发现本题需求最大收益,因此将权变为负数。 然而网络流怎么能出现负数呢?于是可以全部加上AX+AY+BX+BY+CX+CY即可。 再列出新的二元关系:
X选商业 X选工业
Y选商业 BX+BY+CX+CY AX+BY
Y选工业 BX+AY AX+AY+CX+CY

构图

先对所有点黑白染色,规定相邻格子染不同颜色。
对于黑色点,我们连(S,X,AX),(X,T,BX)。
对于白色点,我们连(S,X,BX),(X,T,AX)。
对于相邻两点X与Y,我们连(X,Y,CX+CY),(Y,X,CX+CY)。
跑最大流,最后用总和减去即使答案。

你可能感兴趣的:([bzoj2132]圈地计划)