[codeforces_597B] (贪心)

Posted coding-gaga

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[codeforces_597B] (贪心)相关的知识,希望对你有一定的参考价值。

题意

输入:区间数目n、及n个区间的起止(左闭右闭)。
输出:最多不重叠的区间有多少个。

思路

贪心,最早结束优先。

其他

1 贪心就要彻底一点,多余的处理通常没用。
2 此题还涉及sort排序。

代码

#include<math.h>
#include<stdio.h>
#include<vector>
#include<algorithm>

using namespace std;

bool finishEarly(pair<int,int> &order1,pair<int,int> &order2){
    return order1.second<order2.second;
}

int main(int argc, const char * argv[]) {
    int n;
    scanf("%d",&n);
    vector<pair<int, int>> orderVec;
    
    while(n--){
        int l,r;
        scanf("%d %d",&l,&r);
        orderVec.push_back(make_pair(l, r));
    }
    
    sort(orderVec.begin(), orderVec.end(),  finishEarly);

    int cnt=0;
    int end;
    for(vector<pair<int, int>>::iterator iter=orderVec.begin();iter!=orderVec.end();iter++){
        if(iter==orderVec.begin()){
            cnt++;
            end=iter->second;
        }
        else{
            if(iter->first>end){
                cnt++;
                end=iter->second;
            }
        }
    }
    
    printf("%d",cnt);
    return 0;
}


以上是关于[codeforces_597B] (贪心)的主要内容,如果未能解决你的问题,请参考以下文章

题解Codeforces Round #597 (Div. 2)

Codeforces Round #597 (Div. 2) B. Restricted RPS

Testing Round #12 A,B,C 讨论,贪心,树状数组优化dp

codeforces 597 div 2

Codeforces 1093C (思维+贪心)

Codeforces Round #597 (Div. 2) A. Good ol' Numbers Coloring