網路流24題20 深海機械人問題

2022-04-29 07:03:09 字數 1104 閱讀 9798

題面戳我

這裡推薦一下相關的題目(我可以說是雙倍經驗題嗎)

luogu2045 方格取數加強版其實還是有點區別的啦

這個題是說邊上面有邊權所以就不需要拆點了嗷。

每條邊可以採集一次,那麼肯定要連一條費用為收益容量為1的邊。

那這條邊就不可以走了嗎?

顯然不是。

所有還要連一條費用為0容量為\(inf\)的邊。

所以就這樣建邊然後跑費用流就好啦。

#include#include#include#includeusing namespace std;

const int inf = 1e9;

const int n = 2000;

struct edgea[n<<5];

int a,b,p,q,s,t,pos[100][100],tot,head[n],cnt=1,dis[n],vis[n],pe[n],ans;

queueq;

int gi()

void link(int u,int v,int w,int cost)

; head[u]=cnt;

a[++cnt]=(edge);

head[v]=cnt;

}bool spfa()

}vis[u]=0;

}if (dis[t]==dis[0]) return false;

int sum=inf;

for (int i=t;i^s;i=a[pe[i]^1].to)

sum=min(sum,a[pe[i]].w);

ans-=sum*dis[t];

for (int i=t;i^s;i=a[pe[i]^1].to)

a[pe[i]].w-=sum,a[pe[i]^1].w+=sum;

return true;

}int main()

for (int j=0;j<=q;j++)

for (int i=0;iwhile (a--)

while (b--)

while (spfa());

printf("%d\n",ans);

return 0;

}

網路流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題 深海機械人問題

初見安 這裡是傳送門 洛谷p4012 網路流24題 深海機械人問題 題意很簡單,多個點出發多個機械人,每條路徑上有價值,但是只能收集一次而路徑可以被多個機械人走,求最大可收集價值。網路流建圖很明顯就如題意建網格圖。但是對於每條邊我們要整兩條,一條容量為1,費用為價值,一條容量為inf,費用為0。換言...