time limit: 2 sec memory limit: 256 mb
submit: 1072 solved: 493
[submit][status][discuss]
最近房地產商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。第一行,兩個整數,分別是n和m(1≤n,m≤100);
任何數字不超過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
資料已加強,並重測--2015.5.15
這題那時候一臉懵逼完全不會寫最後滾去看了po大爺的題解..
qaq廣東省選神題好多...我吃棗藥丸..
普通的最小割建圖會遇到乙個問題:
割斷兩塊之間的邊收益為正,即代價為負
因此我們如果正常建最小割,那麼兩塊之間的邊權就會是負的
那麼我們將這個矩陣黑白染色,將白格st反向
這樣割斷兩塊之間的連邊相當於兩塊選擇了同一用途,代價為正
就可以正常跑了
(這個反轉感覺挺6的...或者是我腦洞太小?)
1 #include2view code#define inf 2147483647
3#define n 1280
4#define rep(i,l,r) for(int i=l;i<=r;i++)
5using
namespace
std;
6const
int x[4]=;
7const
int y[4]=;
8int t,head[n*10
<<1],cnt,ans,ccz,n,tot=1,mp[n][n],dis[n*10
<<1
],num[n][n],m,a[n][n],b[n][n],nowx,nowy;
9struct
nodee[2000000
];12 inline bool
bfs()20}
21if(dis[t]>0) return
1;else
return0;
22}23int find(int x,int
low)
32 dis[x]=-1;33
return low-delta;34}
35 inline void ins(int u,int v,int
w) 38 inline void insert(int u,int v,int
w) 41
intmain () else insert(0
,num[i][j],b[i][j]),insert(num[i][j],t,a[i][j]);
50 rep(i,1,n) rep(j,1,m) rep(k,0,3
) 56
while(bfs()) ans-=find(0
,inf);
57 printf("%d"
,ans);
58 }
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要求將這些區域分為商業區和工業區來開發。根據不同的地形...