ZJU 3331 神奇的雙塔DP

2021-06-21 11:47:12 字數 637 閱讀 6391

大致題意:

有兩個機器a,b。要處理n個部件,第i個部件在機器a上完成需要x[i],在b機器上需要y[i],每個部件只能選擇乙個機器來完成。且當地i個部件開始加工時前[1,i-1]部件必須已經完成或者正在被加工。求加工完所有n個部件的最小時間是多少。

大致思路:

好神的dp,這裡的狀態表示非常奇怪。dp[i][j]代表的是,當加工到第i個部件,a機器比b機器的時間多出j+100時的最少時間是多少。

轉移的時候就分別考慮當前任務放在a上或放在b上的最少時間分別是多少即可。

#include#include#include#include#include#define inf 2139062143

#define m 100

using namespace std;

int n,x[120],y[120];

int dp[210][250];

int main()

else

}} int ans=inf;

for(i=0;i<=200;i++)

ans=min(dp[n][i],ans);

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

} return 0;

}

入門DP 神奇的口袋

總time limit 10000ms memory limit 65536kb description 有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a 1,a2 a n。john可以從這些物品中選擇...

神奇的口袋(回溯 DP

有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,john就可以得到這些物品。現在的問題是,john...

dp專題 神奇的口袋

有乙個口袋容積為m,有n個物品,題目的體積為a1,a2,a3 an。把m裝滿有多少種不同的裝法。遞迴 int dfs int n,int m 從n個物品中選出總體積為m的選法 遞推 dp i j dp i 1 j j a i dp i 1 j a i 0 初始條件 dp i 0 1 0 i n 全部...