题目传送门

  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. PV公式

    IP(独立IP):  即Internet Protocol,指独立IP数.00:00-24:00内相同IP地址之被计算一次.PV(访问量):  即Page View, 即页面浏览量或点击量,用户每次刷 ...

  2. 如何实现在已有代码之后添加逻辑之java动态代理

    在上篇博客中讨论到java的静态代理, 就是通过组合的方法,前提是委托类需要实现一个接口,代理类也实现这个这个 接口,从何组合两个类,让代理类给委托类添加功能! 知道java的静态代理,我们又遇到一个 ...

  3. [Effective JavaScript 笔记]第38条:在子类的构造函数中调用父类的构造函数

    示例 场景类 场景图(scene)是在可视化的过程中(如游戏或图形仿真场景)描述一个场景的对象集合.一个简单的场景包含了在该场景中的所有对象(称角色),以及所有角色的预加载图像数据集,还包含一个底层图 ...

  4. map遍历

    Set<Map.Entry<String,String>> ss = params.entrySet(); for(Map.Entry<String,String> ...

  5. BZOJ 1058

    服气!我果然就是个傻逼. 傻兮兮地感觉两个数之间的差距无需删除一些答案,妈个鸡就只加入了一些新的答案忘记了去掉无效的答案.我果然是傻逼,经验不足脑子笨... 这么水的题...不说了,说多了都是泪. 自 ...

  6. CH round #55 Streaming #6

    T^T Saffah大神照样刷我这样诚心诚意想做一套NOIP模拟题的蒟蒻. 第一题 九九归一 好diao的名字... 题意就是给定一队$n,q$,求在模$n$意义下一个数$x$自乘的循环节长度. 当$ ...

  7. LVS-三种负载均衡方式比较

    1.什么是LVS? 首 先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和 基于内容请求分发技术.调度器具 ...

  8. Linux: xclip,pbcopy,xsel用法 terminal 复制粘帖 (mac , ubuntu)

    ubuntu下的用户可以只用apt-get来安装: sudo apt-get install xclip echo "Hello, world" | xclip mac下使用pbc ...

  9. MyBatis3: There is no getter for property named 'code' in 'class java.lang.String'

    mybatis3  : mysql文如下,传入参数为string类型时‘preCode’,运行报错为:There is no getter for property named 'preCode' i ...

  10. 转载一篇关于ios copy的文章

    由于原文创作时间较早,一些内容不实用了,我对其进行了加工,去掉了一部分内容,添加了一点注释. 原文连接 http://www.cnblogs.com/ydhliphonedev/archive/201 ...