刷題總結 生產產品(vijo1243)

2022-05-23 13:12:09 字數 1396 閱讀 6332

在經過一段時間的經營後,dd_engi的oi商店不滿足於從別的供貨商那裡購買產品放上貨架,而要開始自己生產產品了!產品的生產需要m個步驟,每乙個步驟都可以在n臺機器中的任何一台完成,但生產的步驟必須嚴格按順序執行。由於這n臺機器的效能不同,它們完成每乙個步驟的所需時間也不同。機器i完成第j個步驟的時間為t[i,j]。把半成品從一台機器上搬到另一台機器上也需要一定的時間k。同時,為了保證安全和產品的質量,每台機器最多只能連續完成產品的l個步驟。也就是說,如果有一台機器連續完成了產品的l個步驟,下乙個步驟就必須換一台機器來完成。現在,dd_engi的oi商店有史以來的第乙個產品就要開始生產了,那麼最短需要多長時間呢?

某日azuki.7對躍動說:這樣的題目太簡單,我們把題目的範圍改一改

對於菜鳥躍動來說,這是個很困難的問題,他希望你能幫他解決這個問題

第一行有四個整數m, n, k, l

下面的n行,每行有m個整數。第i+1行的第j個整數為t[j,i]。

輸出只有一行,表示需要的最短時間。

3 2 0 2

2 2 3

1 3 1

copy

4
copy

1s對於50%的資料,n<=5,l<=4,m<=10000

對於100%的資料,n<=5, l<=50000,m<=100000

第一屆「oi商店杯」 dd_engi原創題目

偷懶不寫了···詳細見:

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int m=1e5+5

;const

int n=10

;const

int inf=0x7f7f7f7f

;deque

dque[n][n];

intn,m,k,sum[m][n],l,dp[m][n];

inline

intr()

inline

int calc(int i,int k,int

j)int

main()

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

for(int k=1; k<=n; ++k)

if(i!=k)

}int ans=inf;

for(int i=1;i<=n;i++) ans=min(ans,dp[m][i]);

cout

return0;

}

Day1刷題總結

如果進棧序列為e1,e2,e3,e4,則不可能的出棧序列是 d a.e2,e4,e3,e1 b.e4,e3,e2,e1 c.e1,e2,e3,e4 d.e3,e1,e4,e2 解析 對於a,進棧的順序是先把e1,e2進棧,再把e2出棧,再將e3,e4進棧,這時棧按順序剩下e1,e3,e4,出棧的順序...

牛客c 刷題總結1

引用只是乙個別名,是已有變數的別名,而void型別是空型別,是沒有分配記憶體的。所以引用不能是void型別。int const p const int p 以及 int const p 的區別,前兩個意思是一樣的表示 p的內容不能修改,最後那個指的指標p是個常變數,不能修改它的值。個人理解,cons...

劍指offer C 刷題總結(1)

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。雙指標 class solution int n array 0 size int l 0 int r n 1...