Tips:贪心算法的典型应用,可以按照节目结束时间由小到大排序,(至于结束时间相同的,有些人说按开始时间早的排序,不过个人认为不必处理,因为结束时间一样,两个之中要么都没有,要么必有一个)然后再依次进行判断看是否能加入到结果集中。
1 /**贪心算法,按节目结束时间排序*/
2 #include
3 using namespace std;
4 int main()
5 {
6 int n;
7 while(cin>>n && n!=0)
8 {
9 int ts[101],te[101],t;
10 int count = 0;
11 //输入数据
12 for (int i = 0;i < n;i++)
13 {
14 cin>>ts[i];
15 cin>>te[i];
16 }
17 //排序
18 for(int i = 0;i
19 {
20 for(int j=i;j
21 {
22 if(te[i]>te[j+1])
23 {
24 t=te[i];te[i]=te[j+1];te[j+1]=t;
25 t=ts[i];ts[i]=ts[j+1];ts[j+1]=t;
26 }
27 }
28 }
29 //添加数据
30 count = 1;
31 int k = te[0];
32 for( int i=1;i
33 {
34 if(k <= ts[i])
35 {
36 k = te[i];
37 count++;
38 }
39 }
40 cout<
41 }
42 return 0;
43 }
时间: 06-09