贪心算法1004

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贪心算法1004相关的知识,希望对你有一定的参考价值。

题目描述:

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

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数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的主要内容,如果未能解决你的问题,请参考以下文章

贪心算法:划分字母区间

763. 划分字母区间-贪心算法

真正了解贪心算法,这是一篇精华入门总结...

贪心算法----区间覆盖问题(POJ2376)

Contig|scaffold|N50|L50|NG50|贪心算法|de bruiji graph|

多校第二场 1004 hdu 5303 Delicious Apples(背包+贪心)