找点

时间限制:2000 ms  |  内存限制:65535 KB
难度:2
描述

上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点。但是这几天LYH太忙了,你们帮帮他吗?

输入
多组测试数据。
每组数据先输入一个N,表示有N个闭区间(N≤100)。
接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点。
输出
输出一个整数,表示最少需要找几个点。
样例输入
  1. 4
  2. 1 5
  3. 2 4
  4. 1 4
  5. 2 3
  6. 3
  7. 1 2
  8. 3 4
  9. 5 6
  10. 1
  11. 2 2
样例输出
  1. 1
  2. 3
  3. 1
    好久没有刷题了,过个年简单题都想了半天,其实这就是一个简单的贪心题目:
    先排序一下,直接按开始的点排序,然后进行判断点
    1.如果下一个区间的点和第一个有交集的话,然后再判断一下,末尾点是不是在这个区间内,选取最小的末尾点,以便于形成最小的区间;
    2.如果没有区间的话,则新的点就产生了 ,需要重新建立一个共同区间;
    排序的这一方面,改成快速排序效果更好,关键是要理解这一种方法;
    AC代码如下:
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<string>
  6. #include<cmath>
  7. #include<map>
  8. using namespace std;
  9. int main()
  10. {
  11. int i,j,k,t,m,n;
  12. int a[],b[];
  13. while(cin>>t)
  14. {
  15. int ans=;
  16. for(i=;i<t;i++)
  17. scanf("%d %d",&a[i],&b[i]);
  18. for(j=;j<t-;j++)
  19. for(k=;k<t-j-;k++)
  20. if(a[k]>a[k+])
  21. {
  22. m=a[k];a[k]=a[k+];a[k+]=m;
  23. n=b[k];b[k]=b[k+];b[k+]=n;
  24. }
  25. // for(i=0;i<t;i++)
  26. // printf("%d %d\n",a[i],b[i]);
  27. m=a[];n=b[];
  28. for(i=;i<t;i++)
  29. if(a[i]<=n)
  30. {
  31. if(b[i]<n)
  32. n=b[i];
  33. }
  34. else
  35. {ans++;n=b[i];}
  36. printf("%d\n",ans+);
  37. }
  38. return ;
  39. }

NY891 区间选点 找点的更多相关文章

  1. POJ - 1328 Radar Installation(贪心区间选点+小学平面几何)

    Input The input consists of several test cases. The first line of each case contains two integers n ...

  2. poj 1328 Radar Installation 【贪心】【区间选点问题】

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 54798   Accepted: 12 ...

  3. 【区间选点问题】uva 10148 - Advertisement

    区间选点问题,即数轴上有n个闭区间[l1i, ri],取尽量少的点,使得每个区间内都至少有一个点. The Department of Recreation has decided that it m ...

  4. UVALive 2519 Radar Installation 雷达扫描 区间选点问题

    题意:在坐标轴中给出n个岛屿的坐标,以及雷达的扫描距离,要求在y=0线上放尽量少的雷达能够覆盖全部岛屿. 很明显的区间选点问题. 代码: /* * Author: illuz <iilluzen ...

  5. UVAlive 2519 Radar Installation (区间选点问题)

    Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. ...

  6. hdu 4883 区间选点

    昨天比赛的时候没有做出来,本来是想用贪心的,可是贪了好久都没有招, 今天在网上搜了解题报告~好像说这是一类区间选点问题: 有一个好的做法: (1)首先把题目中的时间全转化为分钟,那么区间就在0-144 ...

  7. 贪心算法----区间选点问题(POJ1201)

    题目: 题目的大致意思是,给定n个闭区间,并且这个闭区间上的点都是整数,现在要求你使用最少的点来覆盖这些区间并且每个区间的覆盖的点的数量满足输入的要求点覆盖区间的数量. 输入: 第一行输入n,代表n个 ...

  8. UVa 1615 Highway (贪心,区间选点问题)

    题意:给定一个数 n 个点,和一个d,要求在x轴上选出尽量少的点,使得对于给定的每个点,都有一个选出的点离它的欧几里德距离不超过d. 析:首先这是一个贪心的题目,并且是区间选点问题,什么是区间选点呢, ...

  9. UVA-1615 Highway (贪心,区间选点)

    题目大意:有一条沿x轴正方向,长为L的高速公路,n个村庄,要求修建最少的公路出口数目,使得每个村庄到出口的距离不大于D. 题目分析:区间选点问题.在x轴上,到每个村庄距离为D的点有两个(超出范围除外) ...

随机推荐

  1. C和C++静态检查规范

  2. HTML的GET方法传递参数样式。

    #HTML的GET方法传递参数样式.http://127.0.0.1:8080/web1/urlinfo/getobject.html?UserId=1&UserName=ad

  3. 解决 $ npm install node-sass --save-dev 失败的问题

    $ npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taob ...

  4. 为什么要有GDT

    逻辑地址-------------->线性地址------------> 物理地址   分段 分页 GDT是[gobal (segment) descriptor table]的缩写,它保 ...

  5. laravel5.4中{{$name}} 和 {{!! $name !!}} 的区别:后者原生输出。前者转义

  6. 如何使php页面中不再出现NOTICE和DEPRECATED的错误提示

    在php.ini配置文件中修改: error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED 亲测有效,拿去用吧

  7. sigmoid 函数与 softmax 函数

    sigmoid 函数与 softmax 函数     1. sigmoid 函数       sigmoid 函数又称:logistic函数,逻辑斯谛函数.其几何形状即为一条sigmoid曲线. lo ...

  8. UE 技巧

    http://cache.baiducontent.com/c?m=9d78d513d98416b8599d830e7c01a7170e2585744ddcc4523f8a9c12d522195646 ...

  9. UltraEdit加入到右键菜单中

    http://www.cppblog.com/prayer/archive/2009/02/20/74429.htmlUltraEdit安装好之后,拷贝到其它机器就可以直接使用而无需注册,但少了一个功 ...

  10. 基于SpringCloud的微服务实践

    微服务不同于单一架构应用, 是典型的分布式场景, 各服务之间通过IPC进行通信. 实现微服务的过程中, 我们需要解决以下问题: 服务注册和服务发现. 根据应用选择合适的通信协议和数据协议. 例如可以选 ...