• 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
    ", ans );
    	}
    	return 0; 
    } 
    

      

  • 相关阅读:
    Node.js理解
    PayPal为什么从Java迁移到Node.js
    移动开发技巧总结
    Flex性能调优相关的一些总结
    Flex组件的生命周期
    Adobe Flash Builder 4.7 新功能详解
    【Django】Cookie
    【Django】路由系统
    【Django】视图系统
    【Django】ORM操作#2
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/7672834.html
Copyright © 2020-2023  润新知