hdu 2037 今年暑假不AC(贪心啊~~~活动安排典型题!)

哈哈哈哈。。今天看了关于贪心的一点知识,就像练练手哈~~

 

挺好玩的,恩,以后做贪心吧!

 

嘻嘻。话说,今天晚上ZOJ POJ都出问题了。。zoj挂掉了,poj所有代码都是CE。。只能找HDU的题做了。

 

好不容易在杭电的PPT上找到了典型的贪心水题,这么悲剧的名字。。。

 

这个是典型的活动安排题。

 

这个做法就是按结束时间排序,然后从第一个开始判断是否与后面冲突,不冲突的话作为更新点。

 

贪心任重而道远啊!

 

明天没课捏~~赶啥子捏。。

 

#include <stdio.h> #include <stdlib.h> #include <iostream> #include <memory.h> using namespace std; struct TV { int start,end; }tv[102]; typedef struct TV TV; int n; int flag[102]; int cmp( const void *a,const void *b) { return ((TV*)a)->end - ((TV*)b)->end; } void GreedySelector() { memset(flag,0,sizeof(flag)); int j=0; flag[0] = 1; for(int i=1; i<n; i++) { if( tv[i].start >= tv[j].end ) { flag[i] = 1; j = i; } else flag[i] = 0; } } int main(void) { int sum; while( cin >> n && n ) { sum = 0; for(int i=0; i<n; i++) cin >> tv[i].start >> tv[i].end; qsort( tv, n, sizeof(TV),cmp); GreedySelector(); for(int i=0; i<n; i++) if( flag[i] ) sum++; cout << sum << endl; } return 0; }  

你可能感兴趣的:(struct,活动)