zoukankan      html  css  js  c++  java
  • 【线段上】简单贪心总结……未完

    struct point{

      node a, b;

    }p[N];

    1、选择不相交区间

      【例1】数轴上有n个开区间(ai,bi)。选择尽量多个区间,使得这些区间两两没有公共点。

      【Solution】

      bool cmp(point x, point y){

        if(x.b!=y.b)

          return x.a<y.a;

        else

          return x.b<y.b;

      }

      sort(p,p+n,cmp);

       再一次选区间

    2、区间选点问题

      【例2】数轴上有n个闭区间[ai,bi]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。

      【Solution】排序方式:所有区间按b从小到大排序(b相同时a从大到小排序),选点时选未覆盖点的区间的右端点。

    3、区间覆盖问题

      【例3】数轴上有n个闭区间[ai,bi]。选择尽量少的区间覆盖一条指定线段[s,t]。

      【Solution】首先进行预处理,在[s,t]外部的线段全部除去。各区间按a从小到大排序(a相同时b从大到小排序)

            不断用已选择的区间右端点bi更新要覆盖线段的起点,知道已知线段被全部覆盖。

  • 相关阅读:
    第四十三课:jQuery插件化
    js模块化开发
    第四十二课:基于CSS的动画引擎
    第四十一课:CSS3 animation详解
    第四十课:CSS3 transition详解
    第三十九课:requestAnimationFrame详解
    几种排序
    图与搜索
    数组
    链表
  • 原文地址:https://www.cnblogs.com/celia01/p/2329687.html
Copyright © 2011-2022 走看看