您的位置:首页 > 其它

题目1434:今年暑假不AC

2017-03-22 20:46 337 查看
使用贪心算法,每次选择结束时间最早的电视节目,可获得最优解

#include <iostream>
#include <algorithm>

using namespace std;

struct Node
{
int start;
int end;
};

bool cmp(Node a,Node b)
{
if (a.end == b.end) return a.start < b.start;
else return a.end < b.end;
}

int main()
{
int n;
while (cin >> n)
{
if (n == 0) break;
int count = 0;
Node show[100];
int early = 101;
int late = 0;
for (int i = 0;i < n;i++)
{
cin >> show[i].start >> show[i].end;
if (early > show[i].start) early = show[i].start;
if (late < show[i].end) late = show[i].end;
}
int time_now = early;
sort(show,show+n,cmp);
int i = 0;
while (i < n )
{
if (time_now <= show[i].start)
{
time_now = show[i].end;
count++;
}
i++;
}
cout << count << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: