题意:有m个工程,一台机器在同一时间只能运行一个工程,告诉你每个工程的起始时间和结束时间,求出最少要多少个机器以及最小的机器总运行时间(机器开始了就不能停了,知道用完该台机器才停止)。 题解:由于这里可以使用多台机器,那么我们用起点排序也能够得到最小的k。(对比了下典型的区间调度问题,那个问题由于只 ...
分类:
其他好文 时间:
2017-08-25 19:56:17
阅读次数:
224
1. 相关定义 在数学里,区间通常是指这样的一类实数集合:如果x和y是两个在集合里的数,那么,任何x和y之间的数也属于该集合。区间有开闭之分,例如(1,2)和[1,2]的表示范围不同,后者包含整数1和2。 在程序世界,区间的概念和数学里没有区别,但是往往有具体的含义,例如时间区间,工资区间或者音乐中 ...
分类:
其他好文 时间:
2017-08-16 00:03:21
阅读次数:
348
有N项工作,每项工作分别在Si时间开始,在Ti时间结束。对于每项工作,你都可以选择参与与否。如果选择了参与,那么自始至终都必须全程参与。此外,参与工作的时间段不能重叠(即使是开始的瞬间和结束的瞬间重叠也是不允许的)。 目标是尽可能参与可能多的工作,那么最多能参与多少项工作? ...
分类:
其他好文 时间:
2016-06-18 12:44:36
阅读次数:
305
区间调度问题 代码(C)本文地址:http://blog.csdn.net/caroline_wendy题目: 有n项工作, 每项工作分别在s时间開始, 在t时间结束. 对于每项工作能够选择參与与否, 假设參与, 则全程參与.參与时间段不能重叠, 包含起始结束瞬间也不能重叠. 求最多能參与多少项工作...
分类:
编程语言 时间:
2015-10-09 20:00:28
阅读次数:
229
#include
#include
#include using namespace std;const int MAX_N = 100000;int N,S[MAX_N],T[MAX_N];pair itv[MAX_N];void solve()
{
for(int i=0;i<N;i++)
{...
分类:
其他好文 时间:
2015-05-19 16:45:15
阅读次数:
119
贪心:区间调度问题贪心:区间调度问题有 n 项工作,每项工作分别在 si 时间开始,在 ti 时间结束。对于每项工作,你都可以选择参与与否。参与工作的时间段不能重复 (开始的瞬间和结束的瞬间重叠也是不允许的)分析:在可选的工作中,每次都选取结束时间最早的工作// CreateTime: 2015-0...
分类:
其他好文 时间:
2015-04-07 23:00:12
阅读次数:
153
区间调度问题 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 有n项工作, 每项工作分别在s时间开始, 在t时间结束. 对于每项工作可以选择参与与否, 如果参与, 则全程参与.参与时间段不能重叠, 包括起始结束瞬间也不能重叠. 求最多能参与多少项工作?使用贪心法, 策略是在可选工作中, 每次都选取结束时间最早的工作.代码:/*
* main.c...
分类:
其他好文 时间:
2014-07-17 19:33:04
阅读次数:
210