zoj 2510 Concentric Rings(Greedy~)

在zoj论坛上随便翻贪心的题,发现这个了,CW昨天还说来着。

 

和活动安排是一样一样一样滴。。。只用看0点右边的就好了,内径和外径相当于起始时间和终止时间。

 

只不过这个是去掉最少的环数。

 

终于把sort怎么排序结构体弄会了,偶也~~

 

交了好多次,sort就是比qsort快!以后用sort吧~

 

就是那个头文件的那个单词不会背啊。。。算法的那个单词。。。algorithm~

 

#include <stdio.h> #include <stdlib.h> #include <iostream> #include <string.h> #include <algorithm> using namespace std; struct circle { int begin,end; }circle[10001]; typedef struct circle CIR; //qsort的比较函数 int cmp( const void *a,const void *b) { return ((CIR*)a)->end - ((CIR*)b)->end; } //sort的比较函数 bool cmp1(CIR a, CIR b) { return a.end < b.end; } /**************************************************************************/ int n; int flag[10001]; void Greedy() //贪心。。 { memset(flag,0,sizeof(flag)); int j=0; flag[j] = 1; for(int i=1; i<n; i++) if( circle[i].begin >= circle[j].end ) { flag[i] = 1; j = i; } else flag[i] = 0; } int main(void) { while( cin >> n && n ) { int sum = 0; for(int i=0; i<n; i++) cin >> circle[i].begin >> circle[i].end; // sort(circle,circle+n,cmp1); qsort( circle, n, sizeof(CIR),cmp); Greedy(); for(int i=0; i<n; i++) if( flag[i] == 0 ) sum ++; cout << sum << endl; } return 0; }  

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