zoukankan      html  css  js  c++  java
  • 洛谷—— P1803 凌乱的yyy

    https://www.luogu.org/problem/show?pid=1803

    题目背景

    快noip了,yyy很紧张!

    题目描述

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

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

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

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

    输入输出格式

    输入格式:

    第一行是一个整数n ,接下来n行每行是2个正整数ai,bi(ai<bi),表示比赛开始、结束的时间。

    输出格式:

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

    输入输出样例

    输入样例#1:
    3
    0 2
    2 4
    1 3
    
    输出样例#1:
    2
    

    说明

    对于20%的数据,n≤10;

    对于50%的数据,n≤1000;

    对于70%的数据,n≤100000;

    对于100%的数据,n≤1000000,0≤ai<bi≤1000000。

    和线段覆盖一样的

     1 #include <algorithm>
     2 #include <iostream>
     3 
     4 using namespace std;
     5 
     6 int n,start,over;
     7 int ans;
     8 
     9 struct TypeNodeTime
    10 {
    11     int start,over;
    12 }tim[1000000+15];
    13 
    14 bool cmp(TypeNodeTime a,TypeNodeTime b)
    15 {
    16     if(a.over==b.over)
    17         return a.start<b.start;
    18     return a.over<b.over;
    19 }
    20 
    21 int main()
    22 {
    23     cin>>n;
    24     for(int i=1;i<=n;i++)
    25         cin>>tim[i].start>>tim[i].over;
    26     sort(tim+1,tim+n+1,cmp);
    27     start=tim[1].start;
    28     over=tim[1].over; ans++;
    29     for(int i=2;i<=n;i++)
    30     {
    31         if(tim[i].start>=over)
    32         {
    33             ans++;
    34             start=tim[i].start;
    35             over=tim[i].over;
    36         }
    37     }
    38     cout<<ans;
    39     return 0;
    40 }
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    android部分控件应用解析
    CodeForces Round #179 (295A)
    面试题27:连续子数组的最大和
    java写文件时,输出不完整的原因以及解决方法
    序列化和反序列化--转
    Java多线程编程那些事:volatile解惑--转
    转变--一个平凡人的2017年总结及2018年展望
    系列文章--批处理学习
    set命令
    bat计算两个时间差
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6747240.html
Copyright © 2011-2022 走看看