深海機械人問題

2021-08-13 03:22:06 字數 1076 閱讀 3911

這題的題面描述。。有點問題。。座標寫的很亂。

這道題其實和著名dp問題方格取數很像qwq

我們發現機械人可以重複經過邊,但只能對答案貢獻一次,所以兩點間連兩條邊。一條是容量1帶的費用。

另一條沒費用容量inf。用拆點嗎?不用的。因為這個權值是走過邊會有,所以這題中不用拆點。

起點連s容量機械人,終點連t容量機械人。注意算好點的座標別發生計算錯誤調半天這樣的傻事qwq。

#include

using

namespace

std;

const

int maxn=1e5+5;

const

int inf=1e9+7;

struct edgee[maxn<<1];

int head[maxn],cnt=1;

inline

void add(int u,int v,int w,int cost),head[u]=cnt;

e[++cnt]=(edge),head[v]=cnt;

}int p,q,a,b,s,t;

bool vis[maxn];

int dis[maxn],pre[maxn];

queue

qq;bool spfa(int x)}}

}}if(dis[t]==-inf)return

0; return

1;}

int mc()

for(int i=pre[t];i;i=pre[e[i].u])

}return ans;

}int main()

}for(int i=0;i//座標為(i,j)

for(int j=0;j1;j++)

}for(int i=1;i<=a;i++)

for(int i=1;i<=b;i++)

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

return

0;}

深海機械人問題

費用流,兩個點間連費用為負價值容量為1的邊,再連費用為零容量為inf的邊,建立s,t,分別向起點終點連邊,跑最小費用流,對答案取反即可 水 include define rg register define il inline define fill a,b memset a,b,sizeof a ...

深海機械人問題

深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。潛艇內有多個深海機械人。潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。深海 機械人在移動中還必須沿途採集海底生物標本。沿途生物標本由最先遇到它的深海機械人完成採集。每條預定路徑上的生物標本的價值是已知的,而且生物標本只能 被採集一次。本...

作文 深海機械人 機械人

科學?什麼是科學?我終於漸漸地明白。科學就好像發明家,發明一些新的東西。如,電視 電腦 電燈 機械人等等。在這寫發明當中,我最喜歡機械人。機械人顧名思義是由機器做成的 人 機械人是不會累,你叫它做什麼,它就做什麼,很聽話。現在讓我介紹一下我最喜歡的機械人吧!中藥配藥是一項很費時的工作,但現在,你要是...