题目传送门

  1. /*
  2. 题意:最少需要多少条线段能覆盖[0, m]的长度
  3. 贪心:首先忽略被其他线段完全覆盖的线段,因为选取更长的更优
  4. 接着就是从p=0开始,以p点为标志,选取 (node[i].l <= p && p < node[i+1].l)
  5. 详细解释:http://www.cnblogs.com/freezhan/p/3219046.html
  6. */
  7. #include <cstdio>
  8. #include <iostream>
  9. #include <algorithm>
  10. #include <cstring>
  11. #include <cmath>
  12. using namespace std;
  13. const int MAXN = 1e6 + ;
  14. const int INF = 0x3f3f3f3f;
  15. struct Node
  16. {
  17. int l, r;
  18. }node[MAXN], ans[MAXN];
  19. bool cmp(Node x, Node y)
  20. {
  21. if (x.l == y.l) return x.r > y.r;
  22. else return x.l < y.l;
  23. }
  24. int main(void) //URAL 1303 Minimal Coverage
  25. {
  26. //freopen ("R.in", "r", stdin);
  27. int m;
  28. while (scanf ("%d", &m) == )
  29. {
  30. int n = ; int u, v;
  31. while (scanf ("%d%d", &u, &v) == && (u || v))
  32. node[++n].l = u, node[n].r = v;
  33. sort (node+, node++n, cmp);
  34. int k = ;
  35. for (int i=; i<=n; ++i) //cover
  36. {
  37. if (node[k].l < node[i].l && node[k].r < node[i].r)
  38. {
  39. node[++k] = node[i];
  40. }
  41. }
  42. n = k; int p = ; int cnt = ;
  43. node[n+].l = node[n+].r = m + ;
  44. for (int i=; i<=n; ++i)
  45. {
  46. if (node[i].l <= p && p < node[i+].l)
  47. {
  48. ans[++cnt] = node[i]; p = node[i].r;
  49. }
  50. if (p >= m)
  51. {
  52. printf ("%d\n", cnt);
  53. for (int i=; i<=cnt; ++i)
  54. {
  55. printf ("%d %d\n", ans[i].l, ans[i].r);
  56. }
  57. break;
  58. }
  59. }
  60. if (p < m) puts ("No solution");
  61. }
  62. return ;
  63. }
  64. /*
  65. No solution
  66. */

贪心 URAL 1303 Minimal Coverage的更多相关文章

  1. ural 1303 Minimal Coverage【贪心】

    链接: http://acm.timus.ru/problem.aspx?space=1&num=1303 http://acm.hust.edu.cn/vjudge/contest/view ...

  2. Ural 1303 Minimal Coverage(贪心)

    题目地址:Ural 1303 先按每一个线段的左端点排序,然后设置一个起点s.每次都从起点小于等于s的线段中找到一个右端点最大的. 并将该右端点作为新的起点s,然后继续找. 从左到右扫描一遍就可以. ...

  3. URAL 1303 Minimal Coverage

    URAL 1303 思路: dp+贪心,然后记录路径 mx[i]表示从i开始最大可以到的位置 sufmx[i]表从1-i的某个位置开始最大可以到达的位置 比普通的贪心效率要高很多 代码: #inclu ...

  4. ural 1303 Minimal Coverage(贪心)

    链接: http://acm.timus.ru/problem.aspx?space=1&num=1303 按照贪心的思想,每次找到覆盖要求区间左端点时,右端点最大的线段,然后把要求覆盖的区间 ...

  5. URAL 1303. Minimal Coverage(DP)

    题目链接 又是输出路径...这题完全受上题影响,感觉两个题差不多..用了基本上一样的算法写了,这题比较纠结,就是卡内存啊...5000*5000的数组开不了..然后没办法,水了好几次MLE,看了一下虎 ...

  6. UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)

     Minimal coverage  The Problem Given several segments of line (int the X axis) with coordinates [Li, ...

  7. uva 10020 Minimal coverage 【贪心】+【区间全然覆盖】

    Minimal coverage The Problem Given several segments of line (int the X axis) with coordinates [Li,Ri ...

  8. UVA-10020 Minimal coverage(贪心)

    题目大意:在x轴上,给一些区间,求出能把[0,m]完全覆盖的最少区间个数及该情形下的各个区间. 题目分析:简单的区间覆盖问题.可以按这样一种策略进行下去:在所有区间起点.长度有序的前提下,对于当前起点 ...

  9. 【区间覆盖问题】uva 10020 - Minimal coverage

    可以说是区间覆盖问题的例题... Note: 区间包含+排序扫描: 要求覆盖区间[s, t]; 1.把各区间按照Left从小到大排序,如果区间1的起点大于s,则无解(因为其他区间的左起点更大):否则选 ...

随机推荐

  1. bc.34.B.Building Blocks(贪心)

    Building Blocks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  2. 如何看K线图基础知识

    在日K线图中一般白线.黄线.紫线.绿线依次分别表示:5.10.20.60日移动平均线,但这并不是固定的,会根据设置的不同而不同,比如你也可以在系统里把它们设为5.15.30.60均线. 你看K线图的上 ...

  3. php面试题之五——MySQL数据库(基础部分)

    五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($query)操作的结果,mysql_num_rows( ...

  4. Ninject学习笔记<二>

    本文转载自kuangkro 如果给您带来不便请联系博主 一.控制反转和依赖注入 Ninject是一个轻量级的基于.Net平台的依赖注入(IOC)框架.所谓的IOC,即控制反转(Inversion of ...

  5. 47. 数组中出现次数超过一半的数字[Number appears more than half times]

    [题目]:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字. 例如长度为9的数组{1,2,3,2,2,2,5,4,2}中次数超过了数组长度的一半的数字为2,而长度为8的数组{1,2,3,2 ...

  6. iOS 保存CGRect,CGPoint到NSArray'的方法

    由于CGRect和CGPoint等对象是Struct,即结构体,不是继承于NSObject的,所以需要先用NSValue的方法,把他们转化成NSValue对象,之后就可以存入NSArray了! @in ...

  7. 1.saltstack基础笔记

    环境: master: 节点node1:阿里云:121.42.195.15 centos6.6 minion: 节点node2:腾讯云:182.254.157.19 centos6.6 一.salts ...

  8. Ubuntu的一些常用快捷键

    Ubuntu操作基本快捷键 * 打开主菜单 = Alt + F1 * 运行 = Alt + F2 * 显示桌面 = Ctrl + Alt + d * 最小化当前窗口 = Alt + F9 * 最大化当 ...

  9. July 18th, Week 30th Monday, 2016

    Truth needs no color; beauty, no pencil. 真理不需要色彩,美丽无需涂饰. Most of the time, giving some color to trut ...

  10. Tomcat 解决The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit

    解法: 修改tomcat下的web.xml,     搜索:JspServlet, 增加: <init-param> <param-name>mappedfile</pa ...