bzoj3438 小M的作物

2022-04-30 05:06:08 字數 930 閱讀 1600

這題是一道最大權閉合圖的經典難題(by rose_max)

upd:不誤人子弟了,這就是乙個裸的最小割啊。。。。。

然後構圖的方式就是把作物值分成ab集合,乙個在st一邊,乙個在ed一邊,st連作物流量為a[i],作物流ed流量為b[i],對於每乙個組合,新建兩個點,乙個被st流流量為c1,乙個流ed流量為c2,然後第乙個流去集合中的作物,作物流回第二個點,流量無限。

sum-最小割

#include#include

#include

#include

#include

#include

using

namespace

std;

intn,sum,st,ed;

struct

node

a[2100000];int len,last[110000

];void ins(int x,int y,int

c)void

composition()}//

------composition--------

int h[110000],list[110000

];bool

bt_h()

}head++;

}if(h[ed]>0)return

true

;

return

false;}

int findflow(int x,int

f) }

if(s==0)h[x]=0

;

returns;}

//---------網路流----------

intmain()

printf(

"%d\n

",sum-ans);

return0;

}

BZOJ3438 小M的作物

bzoj3438 小m的作物 小m在mc裡開闢了兩塊巨大的耕地a和b 你可以認為容量是無窮 現在,小p有n中作物的種子,每種作物的種子有1個 就是可以種一棵作物 用1.n編號 現在,第i種作物種植在a中種植可以獲得ai的收益,在b中種植可以獲得bi的收益,而且,現在還有這麼一種神奇的現象,就是某些作...

bzoj3438 小M的作物

題目鏈結 先考慮沒有額外收益的時候怎麼做。從 s 向第 i 點連一條容量為 a i 邊,表示種在 a 中的收益。從第 i 個點向 t 連一條容量為 b i 的邊,表示種在 b 中的收益。然後求出來最小割,用總收益減去即可。完成之後如下圖 然後考慮如何處理額外收益 對於每乙個額外的收益,我們先新建乙個...

BZOJ3438 小M的作物

time limit 10 sec memory limit 256 mb submit 247 solved 124 submit status 背景小m還是個特麼喜歡玩mc的孩紙。描述小m在mc裡開闢了兩塊巨大的耕地a和b 你可以認為容量是無窮 現在,小p有n中作物的種子,每種作物的種子有1個 ...