zoukankan      html  css  js  c++  java
  • 洛谷 P1803 凌乱的yyy / 线段覆盖

    题目背景

    快 noip 了,yyy 很紧张!

    题目描述

    现在各大 oj 上有 nn 个比赛,每个比赛的开始、结束的时间点是知道的。

    yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。

    所以,他想知道他最多能参加几个比赛。

    由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 22 个及以上的比赛。

    输入格式

    第一行是一个整数 nn ,接下来 nn 行每行是 22 个整数 a_{i},b_{i}ai,bi ( a_{i}<b_{i}ai<bi ),表示比赛开始、结束的时间。

    输出格式

    一个整数最多参加的比赛数目。

    输入输出样例

    输入 #1
    3
    0 2
    2 4
    1 3

    输出 #1

    2
    

    分析

    贪右端点

    代码

    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=1e6+5;
    
    int n;
    struct Time
    {
        int a;
        int b;
    }; 
    
    Time t[N];
    
    bool cmp(Time &aa,Time &bb)
    {
        return aa.b<bb.b;
    }
    
    int ans;
    
    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>t[i].a>>t[i].b;
        }
        sort(t+1,t+n+1,cmp);
        int r=0;
        for(int i=1;i<=n;i++)
        {
            if(t[i].a<r) continue;//每次记录一下上一个的右端点,看这次左端带你有没有重合 
            r=t[i].b;
            ans++;
        } 
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    视图、触发器、事务、存储过程、函数,流程控制
    权限管理,pymysql模块
    单表查询
    sql逻辑查询语句的执行顺序
    Mysql数据库基础知识
    库,表,记录的相关操作
    并发编程之IO模型
    并发编程之协程
    并发编程之多线程
    事件委托
  • 原文地址:https://www.cnblogs.com/KyleDeng/p/15568838.html
Copyright © 2011-2022 走看看