2634: 回溯法-最佳调度问题
金币值:3
定数:9
时间限制:1.000 s
内存限制:128 M
正确:3
提交:3
正确率:100.00% 命题人:
题目描述
假设有n个任务由k个可并行工作的机器来完成。完成任务 i 需要时间为 ti,设计完成这n个任务的最佳调度算法,使得完成全部任务的时间最早。
测试代码 复制
#include<stdio.h>
#include<string.h>
int n; //任务个数,小于等于10
int k; //机器台数,小于等于10
int t[11]; //ti记录完成第i个任务需要的时间,0号单元不用
int x[11]; //xi记录第i个任务分配的机器编号,0号单元不用
int y[11]; //yi记录第i台机器执行完任务时间,0号单元不用
int bestTime=65535;//保存执行完全部任务的最少时间
void backtrack(int i) {
if(i>n) {
} else {
for(int j=1;j<=k;j++){
}
}
}
int main(void) {
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&t[i]);
}
backtrack(1);
printf("%d\n",bestTime);
return 0;
}
输入格式
第一行输入两个正整数,分别表示n个作业和k台机器
第二行输入n个正整数,分别表示每个作业需要运行的时间
第二行输入n个正整数,分别表示每个作业需要运行的时间
输出格式
输出完成作业调度任务的最少时间。
输入样例 复制
7 3
2 14 4 16 6 5 3
输出样例 复制
17