程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 2037 今年暑假不AC

HDU 2037 今年暑假不AC

編輯:C++入門知識

貪心練習題: ZOJ 2510(沒做)、HDU1009(背包 貪心)、POJ Bookshelf、zoj 1543 Stripies、poj 1328 Radar Installation、


[cpp]
#include <cstdio>  
#include <algorithm>  
using namespace std; 
struct program { 
    int start; 
    int end; 
/*
    bool operator <(const program t) const{
        if(this->start !=t.start)
            return this->start < t.start;
       else
            return this->end < t.end;
    }
*/ 
}; 
/*
bool operator <(const program &a, const program &b)
{
    if(a.start !=b.start)
        return a.start <b.start;
    else
        return a.end <b.end;
}
*/ 
int cmp(const program &a, const program &b) 

    if(a.start !=b.start) 
        return a.start <b.start; 
    else 
        return a.end <b.end; 

const int N = 101; 
program list[N]; 
 
int main() 

    int n, i, total, mark; 
    //freopen("in.txt","r",stdin);  
    while(scanf("%d",&n),n) 
    { 
        for(i=0;i<n;i++) 
            scanf("%d%d",&list[i].start, &list[i].end); 
        sort(list,list+n,cmp); 
        //for(i=0;i<n;i++) printf("%d %d\n", list[i].start, list[i].end);  
        total = 1; mark = list[0].end; 
        for(i=1;i<n;i++) 
            if(mark <=list[i].start) 
            { 
                mark = list[i].end; 
                total++; 
            }else 
            { 
                if(mark >list[i].end) 
                    mark = list[i].end; 
            } 
        printf("%d\n",total); 
    } 
    return 0; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved