費用流問題,每個樣本選一次,就連一條capacity為1,權為給定的值,因為可以重複走,再連capacity為無窮,權為0的邊,再一次連線給定的出點和匯點即可
#includeusingview codenamespace
std;
#define lowbit(x) ((x)&(-x))typedef
long
long
ll;const
int maxm = 3e3+5
;const
int inf = 0x3f3f3f3f
;struct
edge edges[maxm];
int head[maxm], cur[maxm], cnt, fa[1024], d[1024
], p, q;
bool inq[1024
];void
init()
void add(int u, int v, int cap, int
cost) ;
head[u] = cnt++;
}void addedge(int u, int v, int cap, int
cost)
bool spfa(int s, int t, int &flow, ll &cost) }}
}if(d[t] == inf) return
false
; flow +=cur[t];
cost += 1ll*d[t]*cur[t];
for(int u = t; u != s; u =edges[fa[u]].u)
return
true;}
int mincostmaxflow(int s, int t, ll &cost)
void
run_case()
for(int i = 1; i <= q; ++i)
for(int j = 1; j < p; ++j)
int s = 0, t = p*q+2
;
for(int i = 0; i < a; ++i)
for(int i = 0; i < b; ++i)
ll cost = 0
; mincostmaxflow(s, t, cost);
cout
<< -cost;
}int
main()
LuoguP4012 深海機械人問題 費用流
深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。潛艇內有多個深海機械人。潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。深海機械人在移動中還必須沿途採集海底生物標本。沿途生物標本由最先遇到它的深海機械人完成採集。每條預定路徑上的生物標本的價值是已知的,而且生物標本只能被採集一次。本題限...
P4012 深海機械人問題
深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。潛艇內有多個深海機械人。潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。深海機械人在移動中還必須沿途採集海底生物標本。沿途生物標本由最先遇到它的深海機械人完成採集。每條預定路徑上的生物標本的價值是已知的,而且生物標本只能被採集一次。本題限...
深海機械人問題
這題的題面描述。有點問題。座標寫的很亂。這道題其實和著名dp問題方格取數很像qwq 我們發現機械人可以重複經過邊,但只能對答案貢獻一次,所以兩點間連兩條邊。一條是容量1帶的費用。另一條沒費用容量inf。用拆點嗎?不用的。因為這個權值是走過邊會有,所以這題中不用拆點。起點連s容量機械人,終點連t容量機...