最小化加权完成时间的调度 输入:一组n个作业[n]:={1,2,3,···,n},每个作业j的权值为wj,处理时间为tj 输出:作业的排序,以最小化作业的总加权完成时间
时间: 2024-02-13 10:02:16 浏览: 257
这是一道经典的调度问题,可以使用贪心算法来求解。我们可以按照每个作业的权值和处理时间的比值作为优先级进行排序,然后依次安排每个作业的完成时间。
具体算法如下:
1. 计算每个作业的权值和处理时间的比值,按照比值从大到小排序。
2. 依次安排每个作业的完成时间,对于第i个作业,其完成时间为前i-1个作业的处理时间加上自身的处理时间。
3. 按照完成时间排序,输出作业的排序。
代码实现如下:
```C++
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 10010;
struct Job {
int id;
int w;
int t;
bool operator < (const Job& a) const {
return 1LL * w * a.t > 1LL * a.w * t;
}
} job[MAXN];
bool cmp(const Job& a, const Job& b) {
return a.t < b.t;
}
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> job[i].w >> job[i].t;
job[i].id = i;
}
sort(job + 1, job + n + 1);
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += job[i].t;
job[i].t = sum;
}
sort(job + 1, job + n + 1, cmp);
for (int i = 1; i <= n; i++) {
cout << job[i].id << " ";
}
cout << endl;
return 0;
}
```
其中,cmp函数用于按照完成时间对作业排序。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)