【例6.5】活動選擇
阿新 • • 發佈:2017-11-19
node ret ring 安排 一行 php urn 描述 algo
時間限制: 1000 ms 內存限制: 65536 KB
【例6.5】活動選擇
鏈接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1323時間限制: 1000 ms 內存限制: 65536 KB
【題目描述】
學校在最近幾天有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<cstring> #include<cstdio> #include<algorithm> using namespace std; struct node{int st,ed; }; node p[1005]; bool cmp(node A,node B) { if(A.ed==B.ed)return A.st<B.st; return A.ed<B.ed; } int main() { int n,ans=1; cin>>n; for(int i=1;i<=n;i++)cin>>p[i].st>>p[i].ed; sort(p+1,p+1+n,cmp); int t=p[1].ed; for(int i=2;i<=n;i++)if(p[i].st>=t) { ans++;t=p[i].ed; } cout<<ans<<endl; }
【例6.5】活動選擇