算法实验题3.2 调度问题

来源:互联网 发布:星际淘宝系统 编辑:程序博客网 时间:2024/06/03 14:41

算法实验题3.2 调度问题
★问题描述
作业调度在计算机科学中是一个经典问题并且已经研究了很长一段时间。不同的调度
问题往往满足不同的约束条件和调度需求而显得千差万别。这里我们考虑二机调度问题。
实验室里有两台机器A 和B。机器A 有N 种工作模式,分别为mode_0, mode_1,…,
mode_n-1,同样地,机器B 有M 种工作模式,分别为mode_0, mode1,…, mode_m-1。一开
始,它们都处于mode_0 工作模式下。
给定k 个作业,每一个作业都可以由这两台机器之一在特定的工作模式下完成。例如,
作业0 可以由机器A 在mode_3 模式下完成或由机器B 在mode_4 模式下完成,作业1 可以由
机器A 在mode_2 模式下完成或由机器B 在mode_4 模式下完成,等等。对于作业i,其约束
条件可由一个三元组(i, x, y)来表示,代表作业i 可由机器A 在mode_x 模式或由机器B
在mode_y 模式下完成。
注意,作业必须按照其序号从小到大的顺序处理。
★实验任务
显然,要完成所有作业,我们需要不时地切换机器的工作模式,但不幸地是,更改工
作模式后要手动重启机器才能生效。但是可以通过分配作业到合适的机器,使得机器重启的
次数最少。编程求解机器最少需要的重启次数。
★数据输入
输入只有一组数据。
第一行包含三个整数:N, M(0<N, M <= 50)和k(0 < k <=500)。在接下来的k 行,
给出k 个作业的限制条件,第i 行包含两个整数x 和y,代表上述三元组(i, x, y),即作
业i 可由机器A 在mode_x 模式或由机器B 在mode_y 模式下完成。
★数据输入
输出一个整数占一行,表示最少的重启次数。
输入示例输出示例
2 2 3
0 1
1 0
1 1

 

 

补充示例:

2 41 13
0 20
0 8
1 33
1 35
0 33
0 20
1 23
0 31
1 22
0 39
1 37
0 1
1 37 
输出结果为: 5
原创粉丝点击