初見安~這裡是傳送門:洛谷p4012 [網路流24題] 深海機械人問題
題意很簡單,多個點出發多個機械人,每條路徑上有價值,但是只能收集一次而路徑可以被多個機械人走,求最大可收集價值。
網路流建圖很明顯就如題意建網格圖。但是對於每條邊我們要整兩條,一條容量為1,費用為價值,一條容量為inf,費用為0。換言之,一條拿來收集標本,一條拿來過路。
源點連向每個機械人出發的點,終點連向匯點。
還是比較簡單,事後跑最大費用流就可以了。
#include#include#include#include#include#include#define maxn 1005
#define maxm 100005
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
int read()
while(isdigit(ch)) x = (x << 1) + (x << 3) + ch - '0', ch = getchar();
return x * f;
}struct edge e[maxm];
int head[maxn], k = 0;
void add(int u, int v, int w, int f) ; head[u] = k++;
e[k] = ; head[v] = k++;
}int n, m, a, b, s, t;
int id(int x, int y) ;
int dis[maxn], pre[maxn], incf[maxn], ans = 0;
bool vis[maxn];
bool spfa()
} }if(dis[t] == inf) return false; return true;
}void update()
ans += 1ll * incf[t] * dis[t];
}signed main()
連續水了幾篇最近做的題……
迎評:)
——end——
網路流24題 深海機械人問題
網路流24題大多需要spj,所以需要乙個有spj的oj,本系列 均在www.oj.swust.edu.cn測試通過 這道題其實和數字梯形的第三個規律挺像的 點和路徑均可重合 唯一的差別就是這道題的路徑權值只能計算一次,那怎麼辦呢,其實不難,我們只要將容量為inf的邊的權值修改為0,在此基礎上再加一條...
深海機械人問題 網路流24題
思路 和方格取數差不多的一道題 只是輸入有點噁心 然而他好像提示了怎麼輸出 之後就是建圖標準最大費用最大流了 不知道為什麼spfa的最大流t了乙個點 難道說資料這麼喪心病狂嗎 zkw的話倒是50ms就跑完了 code 1 include 2 define dbg x cout x x endl34 ...
網路流24題20 深海機械人問題
題面戳我 這裡推薦一下相關的題目 我可以說是雙倍經驗題嗎 luogu2045 方格取數加強版其實還是有點區別的啦 這個題是說邊上面有邊權所以就不需要拆點了嗷。每條邊可以採集一次,那麼肯定要連一條費用為收益容量為1的邊。那這條邊就不可以走了嗎?顯然不是。所有還要連一條費用為0容量為 inf 的邊。所以...