hihocoder-1309-任务分配

Posted zhang--yd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hihocoder-1309-任务分配相关的知识,希望对你有一定的参考价值。

hihocoder-1309-任务分配

 

1309 : 任务分配

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

给定 N 项任务的起至时间( S1E1 ), ( S2E2 ), ..., ( SNEN ), 计算最少需要多少台机器才能按时完成所有任务。

同一时间一台机器上最多进行一项任务,并且一项任务必须从头到尾保持在一台机器上进行。任务切换不需要时间。

输入

第一行一个整数 N,(1 ≤ N ≤ 100000),表示任务的数目。 以下 N 行每行两个整数 SiEi,(0 ≤ Si < Ei ≤ 1000000000),表示任务的起至时间。

输出

输出一个整数,表示最少的机器数目。

样例输入
5
1 10
2 7
6 9
3 4
7 10
样例输出
3

 

题解:

模拟整个流程。

用map将起始点 和 终结点结合起来。 起始点 += 1, 终结点 -= 1, 然后对这个 map 进行遍历即可得到 answer。 

类似的, 也可以用来求完成任务的最大资源需求, 将上面的 1 改为 资源需求量即可。

 

#include <cstdio> 

#include <map> 
using namespace std; 

int main(){
	freopen("in.txt", "r", stdin); 

	int n, s, e, ans; 
	while(scanf("%d", &n ) != EOF){
		map<int, int> mp; 
		for(int i=1; i<=n; ++i){
			scanf("%d %d", &s, &e); 
			mp[s] += 1; 
			mp[e] -= 1; 
		}

		ans = 0; 

		int cur = 0; 
		for(auto iter = mp.begin(); iter != mp.end(); ++iter){
			cur += iter->second; 
			if(ans < cur){
				ans = cur; 
			}
		}

		printf("%d\n", ans );
	}
	return 0; 
} 

  

以上是关于hihocoder-1309-任务分配的主要内容,如果未能解决你的问题,请参考以下文章

ACM学习历程—HihoCoder1309任务分配(排序 && 贪心)

HihoCoder 1309

更新:C++ 指针片段

动态内存分配php

Android - 为列表视图填充适配器的异步任务

译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务