DP之流水作业调度问题

Posted wangxuelin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DP之流水作业调度问题相关的知识,希望对你有一定的参考价值。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <string>
 4 #include <algorithm>
 5 using namespace std;
 6 const int N=100;
 7 struct node {
 8     int time;
 9     int index;
10     bool group;
11 };
12 
13 bool cmp(node a,node b)
14 {
15     return a.time<b.time;
16 }
17 int main()
18 {
19     int i,j,k,n;
20     int a[N]={0},b[N]={0};
21     int best[N];
22     node c[N];
23     scanf("%d",&n);
24     for(i=0;i<n;i++) {
25         scanf("%d%d",&a[i],&b[i]);
26     }
27     for(i=0;i<n;i++) {
28         c[i].time=a[i]>b[i]?b[i]:a[i];
29         c[i].index=i;
30         c[i].group=a[i]<=b[i];
31         
32     }
33     sort(c,c+n,cmp);
34     j=0;
35     k=n-1;
36     for(i=0;i<n;i++) {
37         if(c[i].group) {
38             best[j++]=c[i].index;
39         }
40         else {
41             best[k--]=c[i].index;
42         }
43     }
44     j=a[best[0]];
45     k=j+b[best[0]];
46     for(i=1;i<n;i++)
47     {
48         j+=a[best[i]];
49         k=j<k?(k+b[best[i]]):j+b[best[i]];
50     }
51     printf("%d\n",k);
52     for(i=0;i<n;i++) {
53         printf("%d ",best[i]+1);
54     }
55     printf("\n");
56     return 0;
57 }
58 /*
59 6
60 2 5 
61 7 3
62 6 2
63 4 7
64 6 9
65 8 2
66 
67 35
68 1 4 5 2 6 3
69 */

 

以上是关于DP之流水作业调度问题的主要内容,如果未能解决你的问题,请参考以下文章

Flink运行时之流处理程序生成流图

Flink运行时之流处理程序生成流图

Flink执行时之流处理程序生成流图

Spark发行版笔记10:Spark Streaming源码解读之流数据不断接收和全生命周期彻底研究和思考

课堂作业值之寻找水王2

如何检查是不是在 Firebase 作业调度程序中安排了作业?