码迷,mamicode.com
首页 > 编程语言 > 详细

贪心算法1004

时间:2016-03-15 19:12:10      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

题目描述:

每一个节目都有结束时间和开始时间,安排最佳时间能够观看最多的节目。

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。

解题思路:

典型的贪心算法,首先以每个节目的结束时间排序,再用贪心算法寻找局部最优解,即节目时间不冲突,最后再计算能观看的节目数。

代码:

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 struct T
 6 {
 7     int a;
 8     int b;
 9 }s[101];
10 bool cmp(const T&m, const T&n)
11 {
12     if(m.b<=n.b)
13     return true;
14     return false;
15 }
16 void Greedy(int n,T s[])
17 {int sum=1;
18     for(int i=0;i<n-1;i++)
19     {
20         if(s[i+1].a>=s[i].b)
21         sum++;
22     }
23     cout<<sum<<endl;
24 }
25 
26 int main()
27 {
28     int n,N;
29     cin>>N;
30     while(N!=0)
31     {
32     cin>>n;
33     for(int i=0;i<n;i++)
34     {
35         cin>>s[i].a>>s[i].b;
36     }sort(s,s+n,cmp);
37     Greedy(n,s);
38     }
39     return 0;
40 }

 

贪心算法1004

标签:

原文地址:http://www.cnblogs.com/Sikaozhe/p/5280595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!