题目大意
有个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 |
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)。
跑最大流,最后用总和减去即使答案。