zoukankan      html  css  js  c++  java
  • 区间选点问题

     1 /*
     2 先按右端点由小到大排序,相等的话左端点由大到小(否则会少算) 
     3 */
     4 #include <iostream>
     5 #include <cstdlib>
     6 #include <cstring>
     7 using namespace std;
     8 
     9 const int N = 10000;
    10 /**下面的不会用 
    11 typedef struct Node 
    12 {
    13     int a, b;
    14     bool operator <  (const Node &node) const//此时使用sort排序 
    15     {
    16         return b<node.b || b==node.b&&a>node.a;
    17     } 
    18 };
    19 Node q[N];
    20 */
    21 
    22 typedef struct Node 
    23 {
    24     int a, b;
    25 };
    26 Node q[N];//不可直接把q[N]定义在typedef后边 
    27 int cmp(const void *a, const void *b)
    28 {
    29     Node *c = (Node *)a;
    30     Node *d = (Node *)b;
    31     if(c->b == d->b)
    32         return c->a < d->a;
    33     return c->b > d->b;
    34     
    35 }
    36 int cnt = 0;
    37 
    38 int main()
    39 {
    40     int i,j,k;
    41     int T;
    42     cin>>T;
    43     int n;
    44     while(T--)
    45     {
    46         memset(q,0,sizeof(q));
    47         cin>>n;
    48         for(i=0; i<n; i++)
    49         {
    50             cin>>q[i].a>>q[i].b;
    51         }
    52         qsort(q,n,sizeof(Node),cmp);
    53         int end = -1;//坐标全是正数 
    54         
    55         for(i=0; i<n; i++)
    56         {
    57             if(end < q[i].a)
    58             {
    59                 end = q[i].b;
    60                 cnt++;
    61             }
    62         }
    63         cout<<cnt<<endl;
    64     }
    65     return 0;
    66     
    67 }
  • 相关阅读:
    Python3输入输出
    Python3文件
    Python3OS文件/方法
    makefile通用版本(一)
    C语言正则表达式
    正则表达式
    sed、awk工具
    shell编程
    Sqlite3-安装使用
    Powershell-获取命令和帮助
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3019077.html
Copyright © 2011-2022 走看看