1. 程式人生 > 其它 >洛谷 P1803 凌亂的yyy / 線段覆蓋

洛谷 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; }