程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> NYOJ_14會場安排問題(不相交區間)

NYOJ_14會場安排問題(不相交區間)

編輯:C++入門知識

會場安排問題

時間限制:3000 ms | 內存限制:65535 KB 難度:4
描述
學校的小礼堂每天都會有許多活動,有時間這些活動的計劃時間會發生沖突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小礼堂的活動,每個時間最多安排一個活動。現在小劉有一些活動計劃的時間表,他想盡可能的安排更多的活動,請問他該如何安排。
輸入
第一行是一個整型數m(m<100)表示共有m組測試數據。
每組測試數據的第一行是一個整數n(1 隨後的n行,每行有兩個正整數Bi,Ei(0<=Bi,Ei<10000),分別表示第i個活動的起始與結束時間(Bi<=Ei)
輸出
對於每一組輸入,輸出最多能夠安排的活動數量。
每組的輸出占一行
樣例輸入
2
2
1 10
10 11
3
1 10
10 11
11 20
樣例輸出
1
2
提示
注意:如果上一個活動在t時間結束,下一個活動最早應該在t+1時間開始


解題思路:貪心解不相交區間問題,典型的問題,排序最好用sort(快排),輸入用scanf,不然可能會超,其他就不多說了,直接上代碼=-=


#include
#include
#include
using namespace std;

struct node
{
    int a;
    int b;
}num[10001];

bool cmp(node x,node y)    //區間按b升序排練,相等情況下按a降序排練(優先選小區間)
{
    if(x.b==y.b) return x.a>y.a;
    return x.bnum[j].b) {sum++;j=i;}
        }
        printf("%d\n",sum);
    }
    //fclose(stdin);
    return 0;
}


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