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

hud_2037-今年暑假不AC

編輯:C++入門知識

[cpp]   /*      題目大意:給出節目的開始和結束時間,求最多能看多少完整節目   *      解題思路:首先按節目時間排序,因為必須是完整節目,所以要選取上一節目結束後   *  最早開始並盡快結束的節目。   */   #include <cstdio>   #include <cstring>   #include <algorithm>   using namespace std;      #define MAX 101      struct node {       int x, y;   } a[MAX], b[MAX];      bool cmp(node a, node b) {       if( a.x != b.x ) {           return a.x < b.x;       } else {           return a.y < b.y;       }   }      int main(int argc, char const *argv[]) {   #ifndef ONLINE_JUDGE       freopen("test.in", "r", stdin);   #endif       int cnt, ans;       while( scanf("%d", &cnt), cnt ) {           ans = 0;           for(int i = 0; i < cnt; i ++)               scanf("%d %d", &a[i].x, &a[i].y);           sort(a, a + cnt, cmp);           for(int i = 0; i < cnt; i ++) {               if( !i ) b[++ans] = a[i];               else {                   if( a[i].x >= b[ans].y ) {           //開始時間大於上節目結束時間,新增                       b[++ans] = a[i];                   } else if( a[i].y < b[ans].y ) { //如果結束時間小於上節目結束時間,替換                       b[ans] = a[i];                   }                  }           }           printf("%d\n", ans);       }       return 0;   }    

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