zoukankan      html  css  js  c++  java
  • 南阳14----会场安排问题

     1 //只需要按照结束时间排序贪心即可
     2 #include <iostream>
     3 #include <algorithm>
     4 using namespace std;
     5 typedef struct
     6 {
     7     int x,y;
     8 }P;
     9 P p[10005];
    10 bool cmp(P a,P b)
    11 {
    12     if(a.y < b.y) return true;
    13     else if(a.y == b.y && a.x > b.x) return true;
    14     return false;
    15 }
    16 int main()
    17 {
    18     int t,n;
    19     cin >> t;
    20     while(t--)
    21     {
    22         cin >> n;
    23         for(int i=0; i<n; ++i)
    24             cin >> p[i].x >> p[i].y;
    25         sort(p,p+n,cmp);
    26         int ans = 1,temp = p[0].y;
    27         for(int i=1; i<n; ++i)
    28             if(p[i].x > temp)
    29             {
    30                 ++ans;
    31                 temp = p[i].y;
    32             }
    33         cout << ans << endl;
    34     }
    35     return 0;
    36 }
     1 //最优程序
     2 #include<stdio.h>
     3 #include <vector>
     4 #include<algorithm>
     5 #include<math.h>
     6 using namespace std;
     7 
     8 struct activ 
     9 {
    10     int begin;
    11     int end;
    12 };
    13 bool cmp( activ a,activ b)
    14 {
    15     return a.end<b.end;
    16 }
    17 int main()
    18 {
    19     //freopen("1.txt","r",stdin);
    20     int n;
    21     scanf("%d",&n);
    22     while (n--)
    23     {
    24         int m;
    25         scanf("%d",&m);
    26         vector<activ> vec;
    27         for(int i=0;i<m;i++)
    28         {
    29             activ a;
    30             scanf("%d%d",&a.begin,&a.end);
    31             vec.push_back(a);
    32         }
    33         
    34         sort(vec.begin(),vec.end(),cmp);    
    35         int count=vec.size();
    36         int k=0;
    37         for (int i=1;i<vec.size();i++)
    38         {
    39             if(vec[i].begin <= vec[k].end) 
    40                 count--;
    41             else k=i;
    42         }
    43         printf("%d
    ",count);
    44     }
    45     
    46     return 0;
    47 }        
  • 相关阅读:
    Java-使用IO流对大文件进行分割和分割后的合并
    Java-单向链表算法
    Java-二分查找算法
    Java-二叉树算法
    Java-对象比较器
    Android中Activity的四种开发模式
    Struts2工作原理
    C++实现单例模式
    数组中有一个数字出现的次数超过数组的一半,请找出这个数字
    c++ enum用法【转】
  • 原文地址:https://www.cnblogs.com/qq188380780/p/7257069.html
Copyright © 2011-2022 走看看