• 【例6.5】活动选择


    【例6.5】活动选择

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1323
    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。

      现在给出n个活动使用礼堂的起始时间begini和结束时间endi(begini < endi),请你帮助办公室人员安排一些活动来使用礼堂,要求安排的活动尽量多。

    【输入】

    第一行一个整数n(n<=1000);

    接下来的n行,每行两个整数,第一个begini,第二个是endi(begini< endi <=32767)。

    【输出】

    输出最多能安排的活动个数。

    【输入样例】

    11
    3 5
    1 4
    12 14
    8 12
    0 6
    8 11
    6 10
    5 7
    3 8
    5 9
    2 13

    【输出样例】

    4
    题解:按结束时间排序能在结束前多选就多选
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    struct node{
        int st,ed;
    };
    node p[1005];
    bool cmp(node A,node B)
    {
        if(A.ed==B.ed)return A.st<B.st;
        return A.ed<B.ed;
    }
    int  main()
    {
        int n,ans=1;
        cin>>n;
        for(int i=1;i<=n;i++)cin>>p[i].st>>p[i].ed;
        sort(p+1,p+1+n,cmp);
        int t=p[1].ed;
        for(int i=2;i<=n;i++)
            if(p[i].st>=t)
            {
                ans++;t=p[i].ed;
            }
        cout<<ans<<endl;
    }
  • 相关阅读:
    [BZOJ3812]主旋律
    【二分答案】【最大流】[HNOI2007]紧急疏散EVACUATE
    【费用流】NOI2008志愿者招募
    【bzoj1594】猜数游戏
    【贪心】Highway
    【数形结合】Erratic Expansion
    【斜率优化】Average
    【思维】Stacks of Flapjacks
    【二分】Defense Lines
    【DFS】【打表】Lattice Animals
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7858210.html
Copyright © 2020-2023  润新知