Bailian4151 電影節【貪心】

 2023-11-18 阅读 18 评论 0

摘要:4151:電影節 總時間限制: 1000ms 內存限制: 65536kB 描述 大學生電影節在北大舉辦! 這天,在北大各地放了多部電影,給定每部電影的放映時間區間,區間重疊的電影不可能同時看(端點可以重合),問李雷最多可以看多少部電影。 輸入 多組數

4151:電影節
總時間限制: 1000ms 內存限制: 65536kB
描述
大學生電影節在北大舉辦! 這天,在北大各地放了多部電影,給定每部電影的放映時間區間,區間重疊的電影不可能同時看(端點可以重合),問李雷最多可以看多少部電影。

輸入
多組數據。每組數據開頭是n(n<=100),表示共n場電影。
接下來n行,每行兩個整數(0到1000之間),表示一場電影的放映區間
n=0則數據結束
輸出
對每組數據輸出最多能看幾部電影
樣例輸入
8
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
0
樣例輸出
3
來源
Guo Wei

問題鏈接:Bailian4151 電影節
問題簡述:(略)
問題分析:貪心問題。給的是電影的開演和結束時間,按結束時間進行排序,只要時間不重疊就計數。
程序說明:使用pair來表示是最為方便的,排序也很方便。
參考鏈接:(略)
題記:(略)

AC的C++語言程序如下:

/* Bailian4151 電影節 */#include <bits/stdc++.h>using namespace std;const int N = 100;
pair<int, int> p[N];int main()
{int n;while (~scanf("%d", &n) && n) {for (int i = 0; i < n; i++)scanf("%d%d", &p[i].second, &p[i].first);sort(p, p + n);int ans = 0, end = 0;for (int i = 0; i < n; i++)if (end <= p[i].second)ans++, end = p[i].first;printf("%d\n", ans);}return 0;
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/175878.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息