有L個傘兵空降到n*m的地圖中,告訴你傘兵的坐標,你可以在任意位置設立一個激光炮,激光炮可以花費r[i] 殺死這一行的傘兵,花費c[i]殺死這一列的傘兵,最後的
總花費是每次花費的乘積。( 其實log(a)+log(b)+...+log(z)=log(a*b*...*z),對數可以將乘法變成加法 )。
對於這樣的行列模型,很容易想到二分圖,將行列看成二分圖的X和Y集,從源點到X集建邊,容量為log(r[i]),Y集到匯點建邊,容量為log(c[i]),根據傘兵的左邊從X集到Y集建邊,容量為INF(保證不選到)。這樣建圖後,原問題就變成了求最小割。
最後再用exp將答案轉回來就行了。
#include
#include
#include
#include
#include
#include
#include