某加工廠有a、b兩台機器,來加工的產品可以由其中任何一台機器完成,或者兩台機器共同完成。由於受到機器效能和產品特性的限制,不同的機器加工同一產品所需的時間會不同,若同時由兩台機器共同進行加工,所完成任務又會不同。某一天,加工廠接到n個產品加工的任務,每個任務的工作量不盡一樣。你的任務就是:已知每個任務在a機器上加工所需的時間t1, b機器上加工所需的時間t2及由兩台機器共同加工所需的時間t3,請你合理安排任務的排程順序,使完成所有n個任務的總時間最少。
輸入共n+1行第1行為 n。 n是任務總數(1≤n≤6000)第i+1行為3個[0,5]之間的非負整數t1,t2,t3,分別表示第i個任務在a機器上加工、b機器上加工、兩台機器共同加工所需要的時間。如果所給的時間t1或t2為0表示任務不能在該台機器上加工,如果t3為0表示任務不能同時由兩台機器加工。
最少完成時間
5 2 1 0
0 5 0
2 4 1
0 0 3
2 1 19dp
考慮如何記錄狀態
dp[i][j]表示前i個 在a上用了j分鐘,在b上用的最短時間
#include using namespace std;
const int maxn = 30003;
int a, b, c, n, dp[2][maxn], ans = 0x7f7f7f7f;
int main()
} for( int j = 0 ; j <= 30000 ; j++ )
ans = min( ans, max( dp[ n & 1 ][ j ], j ) );
return printf( "%d\n", ans ), 0;
}
bzoj 1222 HNOI2001 產品加工
題意 有兩台機器,給出n個產品在1號機器 2號機器 兩台機器一起的加工時間,0表示不能以某種方式加工,問最快加工時間。題解 dp 很強。f i j 表示前i個產品,在2號機器上用了j的時間,1號機器用的時間。第一維滾一下。轉移看 include include include using names...
狡猾的商人 bzoj1202,HNOI2005
ac通道 分析 因為每月的總收入可以為正,也可以為負,所以要比較兩個區間是否相符,當且僅當它們邊界都相同時才能比較。我們設w i 表示第1 i個月的總收入與第1 fa i 1 個月的總收入之差,及第fa i i個月的總收入。如圖。若i 1,j在同乙個集合中,則第i j個月的總收入為w j w i 1...
1222 HNOI2001 產品加工
某加工廠有a b兩台機器,來加工的產品可以由其中任何一台機器完成,或者兩台機器共同完成。由於受到機器效能和產品特性的限制,不同的機器加工同一產品所需的時間會不同,若同時由兩台機器共同進行加工,所完成任務又會不同。某一天,加工廠接到n個產品加工的任務,每個任務的工作量不盡一樣。你的任務就是 已知每個任...