zoukankan      html  css  js  c++  java
  • 2017多校第10场 HDU 6180 Schedule 贪心,multiset

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6180

    题意:给了一些任务的开始时间和终止时间,现在让我们安排k台及机器,让这些任务在k太机器上最小,并且使得机器的运行时间的和最小。

    解法:按开始工作的时间从小到大排序后,用一个set容器维护一下,每次加入找set里面结束时间小于等于开始时间并且最近的点插入即可,然后如果没有小于开始时间的就重新开一台机器即可,这里可能有重复元素,需要multiset。

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 1e5+5;
    typedef long long LL;
    struct node{
        int st, en;
        node(){}
        node(int st, int en):st(st),en(en){}
        bool operator < (const node &rhs) const{
            return st < rhs.st;
        }
    }a[maxn];
    multiset <int> s;
    int main()
    {
        int T,n;
        scanf("%d", &T);
        while(T--)
        {
            scanf("%d", &n);
            s.clear();
            for(int i=0; i<n; i++){
                scanf("%d %d", &a[i].st,&a[i].en);
            }
            sort(a,a+n);
            LL ans = 0;
            for(int i=0; i<n; i++){
                auto it = s.upper_bound(a[i].st);
                if(it == s.begin()){
                    ans += a[i].en-a[i].st;
                    s.insert(a[i].en);
                }
                else{
                    it--;
                    ans += a[i].en-*it;
                    s.erase(it);
                    s.insert(a[i].en);
                }
            }
            printf("%d %lld
    ", s.size(), ans);
        }
        return 0;
    }
    
  • 相关阅读:
    三元表达式
    迭代器
    python字符串内的自建函数 string.
    shell下的while和if
    正则表达
    nginx下同时做负载均衡和web服务
    nfs匹配nginx服务
    yum安装nginx的负载均衡详解
    samba实战讲解
    python基础之数据类型
  • 原文地址:https://www.cnblogs.com/spfa/p/7439691.html
Copyright © 2011-2022 走看看