zoukankan      html  css  js  c++  java
  • 区间贪心算法

    /*
        区间贪心算法:
        区间不相交问题,给出n个开区间(x,y),从中选择尽可能多的开区间,使得这些区间亮亮没有交集 
    */
    #include<iostream>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    const int maxn = 110; 
    struct Inteval{
        int x , y;
    }I[maxn];
    int cmp(Inteval a , Inteval b){
        //先按左端点从大到小排序,左端点相同按右断点从小到大排序 
        if( a.x != b.x ) return a.x > b.x;
        else return a.y < b.y;
    }
    int main(void){
        int n;
        while(scanf("%d",&n) , n != 0){
            for(int i=0;i<n;i++){
                scanf("%d%d",&I[i].x,&I[i].y);
            }
            sort(I,I+n,cmp);
            int ans = 1 , lastX = I[0].x;
            for(int i=1;i<n;i++){
                if(I[i].y <= lastX){
                    lastX = I[i].x;
                    ans++;
                }
            }
            cout << ans;
        }
    }
  • 相关阅读:
    第五次团队作业
    第三次个人作业
    第一次编程作业
    自我介绍
    个人总结
    第三次个人作业
    第一次结对作业
    第二次作业
    第一次博客作业
    Alpha总结
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8524667.html
Copyright © 2011-2022 走看看