深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。
潛艇內有多個深海機械人。潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。
深海機械人在移動中還必須沿途採集海底生物標本。沿途生物標本由最先遇到它的深海機械人完成採集。
每條預定路徑上的生物標本的價值是已知的,而且生物標本只能被採集一次。
本題限定深海機械人只能從其出發位置沿著向北或向東的方向移動,而且多個深海機械人可以在同一時間佔據同一位置。
用乙個 \(p\times q\) 網格表示深海機械人的可移動位置。西南角的座標為 \((0,0)\),東北角的座標為 \((q,p)\) 。
給定每個深海機械人的出發位置和目標位置,以及每條網格邊上生物標本的價值。
計算深海機械人的最優移動方案, 使深海機械人到達目的地後,採集到的生物標本的總價值最高。
檔案的第 \(1\) 行為深海機械人的出發位置數 \(a\),和目的地數 \(b\) 。
第 \(2\) 行為 \(p\) 和 \(q\) 的值。
接下來的 \(p+1\) 行,每行有 \(q\) 個正整數,表示向東移動路徑上生物標本的價值,行資料依從南到北方向排列。
再接下來的 \(q+1\) 行,每行有 \(p\) 個正整數,表示向北移動路徑上生物標本的價值,行資料依從西到東方向排列。
接下來的 \(a\) 行,每行有 \(3\) 個正整數 \(k,x,y\),表示有 \(k\) 個深海機械人從 \((x,y)\) 位置座標出發。
再接下來的 \(b\) 行,每行有 \(3\) 個正整數 \(r,x,y\) ,表示有 \(r\) 個深海機械人可選擇 \((x,y)\) 位置座標作為目的地。
輸出採集到的生物標本的最高總價值.
1 1
2 21 2
3 45 6
7 28 10
9 32 0 0
2 2 2
42
\(1\leq p,q\leq 15\)
\(1\leq a\leq 4\)
\(1\leq b\leq 6\)
s向所有機械人起點連邊
所有機械人終點向t連邊
每個點向右向下分別連兩條邊
一條容量為 1 ,邊權為圖中邊權
另一條容量為 inf,邊權為零
這樣保證了權值只能獲得一次,又保證了這條邊可以被多個人走
#include #include #include #include #include #include #define _ 0
#define ll long long
#define int long long
inline ll in()
const int maxn = 105050;
struct node
void *operator new (size_t)
};const int inf = 0x7fffffff;
int n, m, p, q, s, t;
typedef node* nod;
bool vis[maxn];
nod head[maxn], road[maxn];
int dis[maxn], change[maxn], id[55][55];
std::queuev;
inline void add(int from, int to, int can, int dis)
inline void link(int from, int to, int can, int dis)
inline bool spfa()
} }return change[t] != inf;
}inline void mcmf()
} printf("%lld", cost);
}signed main()
for(int i = 1; i <= m; i++)
for(int i = 0; i <= p; i++)
for(int j = 0; j <= q; j++)
mcmf();
return 0 ;
}
洛谷P4012 深海機械人問題 費用流
深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。潛艇內有多個深海機械人。潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。深海機械人在移動中還必須沿途採集海底生物標本。沿途生物標本由最先遇到它的深海機械人完成採集。每條預定路徑上的生物標本的價值是已知的,而且生物標本只能被採集一次。本題限...
luogu P4012 深海機械人問題
費用流問題,每個樣本選一次,就連一條capacity為1,權為給定的值,因為可以重複走,再連capacity為無窮,權為0的邊,再一次連線給定的出點和匯點即可 includeusing namespace std define lowbit x x x typedef long long ll co...
LuoguP4012 深海機械人問題 費用流
深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。潛艇內有多個深海機械人。潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。深海機械人在移動中還必須沿途採集海底生物標本。沿途生物標本由最先遇到它的深海機械人完成採集。每條預定路徑上的生物標本的價值是已知的,而且生物標本只能被採集一次。本題限...