zoukankan      html  css  js  c++  java
  • nyoj 14 会场安排问题

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=14

    解题思路:按活动结束时间从小到大排序,优先选择小的,显然,第一个活动一定被选,按顺序依次判断下一个活动的开始时间是否大于当前被选的最后一个活动的结束时间,若是,选之,否则,跳过。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstdio>
     4 using namespace std;
     5 
     6 struct T{
     7     int Bi,Ei;
     8     bool operator <(const T &a) const{
     9         return Ei<a.Ei;
    10     }
    11 }t[10005];
    12 
    13 int main(){
    14     int m,n,i;
    15     scanf("%d",&m);
    16     while(m--){
    17         scanf("%d",&n);
    18         for(i=0;i<n;i++) scanf("%d%d",&t[i].Bi,&t[i].Ei);
    19         sort(t,t+n);
    20         int num=1,Max=t[0].Ei;
    21         for(i=1;i<n;i++){
    22             if(t[i].Bi>Max){
    23                 num++;
    24                 Max=t[i].Ei;
    25             }
    26         }
    27         printf("%d
    ",num);
    28     }
    29     return 0;
    30 }

  • 相关阅读:
    Spinal Tap Case
    Sorted Union
    Search and Replace
    Boo who
    Missing letters
    DNA Pairing
    Pig Latin
    Where art thou
    Roman Numeral Converter
    Redis高级客户端Lettuce详解
  • 原文地址:https://www.cnblogs.com/linqiuwei/p/3159892.html
Copyright © 2011-2022 走看看