假設有n個任務由k個可並行工作的機器完成,完成任務i需要的時間為ti,對任意給定的整數n和k,以及完成任務i需要的時間ti,設計乙個演算法,求完成這n個任務的最佳排程,使得完成全部任務的時間最早。
第一行有2個正整數n和k,第二行有n個正整數,表示ti
n<7000,c樣例輸入
7 3樣例輸出2 14 4 16 6 5 3
17
#include
using
namespace
std;
long
long
n,m,a[7001],z[7001],ans=10000000000;
inline
void
dfs(
int
k,
long
long
zhi)
if
(zhi>=ans)
return
;
for
(
int
i=0;i
}
}
bool
qwe(
int
a,
int
b)
int
main()
sort(a,a+n,qwe);
dfs(0,0);
cout<}
dfs資料型別前的inline把時間由152ms->140ms,
由大到小排序,把時間從2000++ms->152ms
最佳排程問題
假設有n n 20 個任務由k k 20 個可並行工作的機器完成。完成任務i需要的時間為ti。試設計乙個演算法,對任意給定的整數n和k,以及完成任務i 需要的時間為ti i 1 n。計算完成這n個任務的最佳排程,使得完成全部任務的時間最早。輸入格式 輸入資料的第一行有2 個正整數n和k。第2 行的n...
PTA 最佳排程問題
假設有n n 20 個任務由k k 20 個可並行工作的機器完成。完成任務i需要的時間為ti。試設計乙個演算法,對任意給定的整數n和k,以及完成任務i 需要的時間為ti i 1 n。計算完成這n個任務的最佳排程,使得完成全部任務的時間最早。輸入格式 輸入資料的第一行有2 個正整數n和k。第2 行的n...
問題 I 最佳排程問題
假設有n個任務由k個可並行工作的機器完成。完成任務i需要的時間為ti。試設計乙個演算法找出完成這n個任務的最佳排程,使得完成全部任務的時間最早。對任意給定的整數n和k,以及完成任務i需要的時間為ti,i 1 n。程式設計計算完成這n個任務的最佳排程。給出輸入資料。第一行有2 個正整數n和k。第2 行...