算法与数据结构实验题1.2 青子的生日

★实验任务
青子的生日快到了,快斗计划着带青子去游乐场玩。游乐场有好多游戏项目, 每个游戏项目都有自己的开始和结束时间。同一时间只能玩一个游戏,前一个游 戏结束后可以马上开始下一个游戏。为了让青子过一个愉快的生日,快斗决定带 青子玩尽可能多的游戏。因为青子是个从不半途而废的女孩,所以他们必须完整 地玩完选择的每个游戏。
★数据输入
输入第一行为一个正整数 n(1<=n<=100),表示可供选择的游戏项目数。 然后是 n 行数据。每行包括 2 个数据 Ti_s,Ti_e (1<=i<=n),分别表示第 i 个游戏项目的开始和结束时间,为了简化问题, 每个时间都用一个正整数表示。
★数据输出
输出最多能完整玩完的游戏项目数
输入示例
4
1 2
2 3
3 4
4 5
输出示例
4


简单的贪心

/*
 * qzdsr.cpp
 *
 *  Created on: 2016年9月4日
 *      Author: CJDM66
 */
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
class qz{
    public:
        int a,b;
};
bool cmp(const qz& p,const qz& q){
    return p.b<q.b;
}
int main(void){
    int n,i;
    int ans=0;
    int signb=-1;
    cin>>n;
    vector<qz> v;
    vector<qz>::iterator it;
    for(i=0;i<n;i++){
        qz ex;
        cin>>ex.a;
        cin>>ex.b;
        v.push_back(ex);
    }
    sort(v.begin(),v.end(),cmp);
    for(it=v.begin();it<v.end();it++){
        while(signb<=(*it).a){
            ans++;
            signb=(*it).b;
        }
    }
    cout<<ans;
    return 0; 
}

猜你喜欢

转载自blog.csdn.net/cjdm66/article/details/52637542