華為OD機試-- 任務最優(yōu)調度

題目
給定一個正整數(shù)組表示待系統(tǒng)執(zhí)行的任務列表,數(shù)組的每一個元素代表一個任務,元素的值表示該任務的類型。
請計算執(zhí)行完所有任務所需的最短時間。
任務執(zhí)行規(guī)則如下:
任務可以按任意順序執(zhí)行,且每個任務執(zhí)行耗時間均為1個時間單位。
兩個同類型的任務之間必須有長度為N個單位的冷卻時間,比如N為2時,在時間K執(zhí)行了類型3的任務,那么K+1和K+2兩個時間不能執(zhí)行類型3任務。
系統(tǒng)在任何一個單位時間內都可以執(zhí)行一個任務,或者等待狀態(tài)。
說明:數(shù)組最大長度為1000,數(shù)字最大值1000。
輸入描述
第一行記錄一個用半角逗號分隔的數(shù)組,數(shù)組長度不超過1000,數(shù)組元素的值不超過1000,
第二行記錄任務冷卻時間,N為正整數(shù),N<=100。
輸出描述
輸出為執(zhí)行完所有任務所需的最短時間。
示例1? 輸入輸出示例僅供調試,后臺判題數(shù)據(jù)一般不包含示例
輸入
2,2,2,3
2
輸出
7
說明
時間1:執(zhí)行類型2任務。
時間2:執(zhí)行類型3的任務(因為冷卻時間為2,所以時間2不能執(zhí)行類型2的任務)。
時間3:系統(tǒng)等待(仍然在類型2的冷卻時間)。
時間4:執(zhí)行類型2任務。
時間5:系統(tǒng)等待。
時間6:系統(tǒng)等待。
時間7:執(zhí)行類型2任務。
因此總共耗時7。
Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/130731537
Python實現(xiàn):https://renjie.blog.csdn.net/article/details/130731563
C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/127271217
JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/130731590
C實現(xiàn):https://renjie.blog.csdn.net/article/details/130529619