(精)hdoj 2309(贪心算法)(开始的时候我还怀疑是不是要多次循环安排,后来我发现第一次的最多)

来源:互联网 发布:淘宝联盟推广赚钱技巧 编辑:程序博客网 时间:2024/05/22 17:08
#include<iostream>#include<stdio.h>using namespace std;int n;int m;#define  M 50010//#define M 30class Point{public:int day;int start;int end;};int comp(const void *a,const void *b){if(((Point*)a)->day==((Point*)b)->day){return ((Point*)a)->end-((Point*)b)->end;}else{return ((Point*)a)->day-((Point*)b)->day;}}Point point[M];int result[M];int Ok(Point a,Point b){//如果说是同一天,比较结束时间if(a.day==b.day){if(a.end<=b.start){return 1;}else{return 0;}}//如果不是同一天,比较天else{if(a.day<b.day){return 1;}else{return 0;}}}int main(){//freopen("in.txt","r",stdin);scanf("%d",&n);int count=0;while(n--){scanf("%d",&m);int i=0;for(i=0;i<m;i++){scanf("%d%d%d",&point[i].day,&point[i].start,&point[i].end);}qsort(point,m,sizeof(Point),comp);int ans=1;int select=0;for(i=1;i<m;i++){if(Ok(point[select],point[i])){ans++;select=i;}}count++;printf("Scenario #%d:\n",count);cout<<ans<<endl;cout<<endl;}return 0;}

原创粉丝点击