活动选择(信息学奥赛一本通-T1323)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                活动选择(信息学奥赛一本通-T1323)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                【題目描述】
學校在最近幾天有n個活動,這些活動都需要使用學校的大禮堂,在同一時間,禮堂只能被一個活動使用。由于有些活動時間上有沖突,學校辦公室人員只好讓一些活動放棄使用禮堂而使用其他教室。
 現在給出n個活動使用禮堂的起始時間begini和結束時間endi(begini<endi),請你幫助辦公室人員安排一些活動來使用禮堂,要求安排的活動盡量多。
【輸入】
第一行一個整數n(n≤1000);
接下來的n行,每行兩個整數,第一個begini,第二個是endi(begini<endi≤32767)。
【輸出】
輸出最多能安排的活動個數。
【輸入樣例】
11
 3 5
 1 4
 12 14
 8 12
 0 6
 8 11
 6 10
 5 7
 3 8
 5 9
 2 13
【輸出樣例】
4
【源程序】
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #define INF 999999999 #define N 1001 using namespace std; int n; int beginn[N],endd[N]; void qsort(int x,int y) {int i,j,mid;i=x;j=y;mid=endd[(x+y)/2];while(i<=j){while(endd[i]<mid)i++;while(endd[j]>mid)j--;if(i<=j){swap(endd[j],endd[i]);swap(beginn[j],beginn[i]);i++;j--;}}if(x<j)qsort(x,j);if(i<y)qsort(i,y); } int main() {cin>>n;for(int i=1;i<=n;i++)cin>>beginn[i]>>endd[i];qsort(1,n);int cnt=0;int temp=-INF;for(int i=1;i<=n;i++)if(beginn[i]>=temp){cnt++;temp=endd[i];}cout<<cnt<<endl;return 0; }?
總結
以上是生活随笔為你收集整理的活动选择(信息学奥赛一本通-T1323)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 暑期训练日志----2018.8.19
- 下一篇: 分成互质组 (信息学奥赛一本通-T122
