NYOJ 14 会场安排问题

地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=14

思路:贪心算法

主要问题是时间的问题,这就需要用到ACM中常用的algorithm库函数

 1 #include<stdio.h>

 2 #include<algorithm>

 3 using namespace std;

 4 struct  node

 5 {

 6     int first;//开始时间

 7     int last; //结束时间

 8 }w[10001];

 9 bool cmp(node x,node y)

10 {

11     if(x.last<y.last)  return true;  //升序

12     return false;

13 }

14 int main()

15 {

16     int m,n,i,count,p;

17     scanf("%d",&m);

18     while(m--)

19     {

20         scanf("%d",&n);

21         for(i=0;i<n;i++)

22         scanf("%d %d",&w[i].first,&w[i].last);

23         sort(w,w+n,cmp);

24         p=0;count=1; //因为是从第二个开始比较的,所以count初始为1

25         for(i=1;i<n;i++)

26         {

27             if(w[i].first>w[p].last)

28             {

29                 count++;

30                 p=i;  //比较后修改下标,进行下一次比较 

31             }

32         }

33         printf("%d\n",count);

34     }

35     return 0;

36 } 

 

 

你可能感兴趣的:(问题)