bzoj2132 圈地計畫

2022-06-07 14:54:14 字數 788 閱讀 3742

很顯然是乙個最小割的模型,將網格圖黑白染色分為兩類,黑的向s連工業費用,向t連商業費用,白的反過來即可

然後對於相鄰的點,連上兩個點的c之和(因為會產生兩個),當然也可以變成兩條邊,就不需要存下c矩陣了

1 #include2

using

namespace

std;

3#define n 10005

4struct

jiedge[n*50

];7 queueq;

8int e,n,m,x,ans,dx[4]=,dy[4]=,head[n],d[n],work[n];

9int id(int x,int

y)12

void add(int x,int y,int

z)19

bool

bfs()31}

32return d[n*m+1]>=0;33

}34int dfs(int k,int

s)44}45

return0;

46}47int

dinic()

53return

ans;54}

55int

main()

65for(int i=0;i)

66for(int j=0;j)

72for(int i=0;i)

73for(int j=0;j)82}

83 printf("

%d",ans-dinic());

84 }

view code

bzoj2132 圈地計畫

有個n m的矩形,每個區域可以建造商業區或工業區,分別獲得ai,j和bi,j的收益。乙個格仔如果有與其相鄰的k個格仔與其型別不同,則可以帶來ci,j的收益。求最大收益 我們可知,i,j和k,l兩個格仔型別不同就會帶來ci,j ck,l的收益。這是經典的二元關係,是網路流問題。x選商業 x選工業 y選...

bzoj 2132 圈地計畫

time limit 2 sec memory limit 256 mb submit 918 solved 417 submit status discuss 最近房地產商gdoi group of dumbbells or idiots 從noi nuts old idiots 手中得到了一塊開...

BZOJ2132 圈地計畫

bzoj2132 圈地計畫 最近房地產商gdoi group of dumbbells or idiots 從noi nuts old idiots 手中得到了一塊開發土地。據了解,這塊土地是一塊矩形的區域,可以縱橫劃分為n m塊小區域。gdoi要求將這些區域分為商業區和工業區來開發。根據不同的地形...