BZOJ2132 圈地計畫

2022-03-29 16:01:55 字數 1947 閱讀 2222

bzoj2132: 圈地計畫

最近房地產商gdoi(group of dumbbells or idiots)從noi(nuts old idiots)手中得到了一塊開發土地。

據了解,這塊土地是一塊矩形的區域,可以縱橫劃分為n×m塊小區域。

gdoi要求將這些區域分為商業區和工業區來開發。

根據不同的地形環境,每塊小區域建造商業區和工業區能取得不同的經濟價值。

更具體點,對於第i行第j列的區域,建造商業區將得到aij收益,建造工業區將得到bij收益。

另外不同的區域連在一起可以得到額外的收益,即如果區域(i,j)相鄰(相鄰是指兩個格仔有公共邊)有k塊(顯然k不超過4)型別不同於(i,j)的區域,則這塊區域能增加k×cij收益。

經過tiger.s教授的勘察,收益矩陣a,b,c都已經知道了。

你能幫gdoi求出乙個收益最大的方案麼?

輸入第一行為兩個整數,分別為正整數n和m,分別表示區域的行數和列數;

第2到n+1列,每行m個整數,表示商業區收益矩陣a;

第n+2到2n+1列,每行m個整數,表示工業區收益矩陣b;

第2n+2到3n+1行,每行m個整數,表示相鄰額外收益矩陣c。

任何數字不超過1000的限制

輸出只有一行,包含乙個整數,為最大收益值。

3 31 2 3

4 5 6

7 8 9

9 8 7

6 5 4

3 2 1

1 1 1

1 3 1

1 1 1

81【資料規模】

對於100%的資料有n,m≤100

最小割模型。。。

可以看這裡:

好在這個題不需要拆點了。

根據套路,我們設立源匯點$s,t$,將$s$連向商業區,工業區連向$t$。

$but$!題目的聯合代價是不同種類的區域!

這怎麼辦?

需要轉化成我們會的東西——相同。

注意到是四聯通,那麼黑白點染色。

然後交換掉一種點的$a,b$的值。

此時不同就變成相同了。

具體可以看**。

於是這個問題就解決了。

剩下的就是處理聯合代價。

那就從$x$連向$y$,再從$y$連向$x$即可。

剩下的不多說。

附**:

#include#include#include#include#define maxn 10010

#define maxm 150010

#define max 999999999

using namespace std;

const int fx[4]=,fy[4]=;

int n,m,c=2,s,t,sum=0;

int head[maxn],deep[maxn],c[110][110];

struct edgea[maxm];

inline int read()

while(c>='0'&&c<='9')

return date*w;

}inline int id(int x,int y)

inline void add(int u,int v,int w)

bool bfs()

} }return false;

}int dfs(int x,int limit)

else deep[v]=-1;

} }return cost;

}int dinic()

void init()

for(int i=1;i<=n;i++)

for(int j=1;j<=m;j++)

for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)c[i][j]=read();

for(int i=1;i<=n;i++)

for(int j=1;j<=m;j++) }}

int main()

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 圈地計畫

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