高精度整数
实现
1 |
|
测试
1 | #include "上述代码组成的头文件" |
区间调度系列
ref https://blog.csdn.net/yutianzuijin/article/details/78897604
背景知识
假设区间是闭合的,并定义为[start,end]。我们首先看一下区间重叠的定义。给定两个区间[s1,e1]和[s2,e2],它们重叠的可能性有四种:
可以看出,如果直接考虑区间重叠,判断条件比较复杂,我们从相反的角度考虑,考虑区间不重叠的情况。区间不重叠时的判断条件为:
也即:(e1<s2||s1>e2),所以区间重叠的判断条件为:
最多区间调度问题
定义:数轴上有n个区间,选出最多的区间,使得这些区间不互相重叠。
例如:下面例子中有5个任务,每个任务两端分别是其任务的开始时间和结束时间,怎么选择可以使参与的任务数最多,也就是被选择的区间(1个任务对应一个区间)最多?
算法:在可选的工作中,每次都选取结束时间最早的工作。因此,将所有区间按右端点坐标从小到大排序,顺序处理每个区间。如果它与当前已选的所有区间都没有重叠,则选择该区间,否则不选。
1 |
|
