zoukankan      html  css  js  c++  java
  • hoj 1072 活动安排问题

    活动安排问题

    Time Limit:1000MS  Memory Limit:65536K
    Total Submit:139 Accepted:3

    Description

    假设要在一会场里安排一批活动,并希望尽可能多的安排活动。设计一个有效的算法计算当所安排的活动最多时,会场的使用时间。会场的使用时间是指活动占用会场的时间,例如一活动在1到23分占用会场,那么会场的使用时间就是23分。
    编程任务:
    对于给定的k个待安排的活动,编程计算安排的活动最多时会场使用时间。

    Input

    输入数据是由多组测试数据组成。每组测试数据输入的第一行有1 个正整数k(k≤8500),表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动开始时间和结束时间。时间以0 点开始的分钟计。

    Output

    对应每组输入,输出的每行是计算出的会场使用时间。

    Sample Input

    5
    1 23
    12 28
    25 35
    27 80
    36 50
    

    Sample Output

    49

    Source

    wangzhiqun

    [Submit]   [Go Back]   [Status]   [Discuss]

    //13222 wupanlei 1072 Accepted 952K 399MS G++ 0.8K 2009-06-24 08:20:57 
    #include <iostream>
    #include 
    <algorithm>
    #define MAX 9000
    using namespace std;
    typedef 
    struct node
    {
        
    int s;
        
    int e;
    }Data;
    class Party
    {
    private:
        Data data[MAX];
        
    int summ;
        
    int n;
    public:
        Party();
        
    void Set(int nn);
        
    //friend bool comp(int a,int b);
        int CalSum();
    };
    bool comp(node a,node b)
    {
        
    return a.e<b.e;
    }
    Party::Party()
    {
        summ
    =0;
    }
    void Party::Set(int nn)
    {
        n
    =nn;
        
    int i;
        
    for(i=0;i<n;i++)
        {
            cin
    >>data[i].s>>data[i].e;
        }
    }
    int Party::CalSum()
    {
        
    int j=0,i;
        sort(data
    +0,data+n,comp);
        summ
    =data[0].e-data[0].s+1;
        
    for(i=1;i<n;i++)
        {
            
    if(data[i].s>=data[j].e)
            {
                summ
    +=data[i].e-data[i].s+1;
                j
    =i;
            }
        }
        
    return summ;
    }
    int main()
    {
        
    int nn;
        
    while(cin>>nn)
        {
            Party p;
            p.Set(nn);
            cout
    <<p.CalSum()<<endl;
        }
        
    return 0;
    }
  • 相关阅读:
    教材代码完成情况测试P186(课上测试)
    教材代码完成情况测试P171(课上测试)
    团队作业(三):确定分工
    2018-2019-2 20175215 实验二《面向对象程序设计》实验报告
    20175215 2018-2019-2 第七周java课程学习总结
    类定义(课下选做)
    2018-2019 20175234 实验三《敏捷开发与XP实践》实验报告
    20175234 2018-2019-2 个人项目:数字黑洞(三):圣经数
    20175234 数据库MySQL(课下作业)
    20175234 2018-2019-2 《Java程序设计》第九周学习总结
  • 原文地址:https://www.cnblogs.com/forever4444/p/1509882.html
Copyright © 2011-2022 走看看