当前位置: 首页 > news >正文

白山北京网站建设个人博客网站模板下载

白山北京网站建设,个人博客网站模板下载,做全房订制网站公司,怎么做购物网站905. 区间选点 思路 #xff08;贪心#xff09;O(nlogn) 根据右端点排序 将区间按右端点排序 遍历区间#xff0c;如果当前区间左端点不包含在前一个区间中#xff0c;则选取新区间#xff0c;所选点个数加1#xff0c;更新当前区间右端点。如果包含#xff0c;则跳…905. 区间选点 思路 贪心O(nlogn) 根据右端点排序 将区间按右端点排序 遍历区间如果当前区间左端点不包含在前一个区间中则选取新区间所选点个数加1更新当前区间右端点。如果包含则跳过。 输出所选点的个数。 举例: 为什么不能根据左端点排序呢 如下图所示有三个区间 我们按右侧排序是如图所示l3 r2点数加1更新右端点l1 l3无需更新直接跳过 如果改成按左侧排序的话r2 r1 r3 r1,无需更新所需点数输出点数为1错误。 第一个区间为l1~r1, 当我们遍历到l2~r2的时候没有问题l2 r1, 无需更新。但当我们遍历到l3~r3这个区间的话就出现问题了l3 r1, 无需更新输出点数1 解决办法 在遍历其他区间的时候同时更新区间右端点取最小值 Java代码 import java.util.*; class Range implements ComparableRange{int l,r;public Range(int l,int r){this.l l;this.r r;}public int compareTo(Range o){return Integer.compare(r,o.r);//return this.r - o.r;} } public class Main{static int N 100010,INF 0x3f3f3f3f,n;static Range[] range new Range[N];//结构体创建数组需要定义成全局变量public static void main(String[] args){Scanner scan new Scanner(System.in);n scan.nextInt();for(int i 0 ; i n ; i ){int l scan.nextInt();int r scan.nextInt();range[i] new Range(l,r);}//结构体排序Arrays.sort(range,0,n); //Arrays.sort(range, 0, n, (o1, o2) - o1.r - o2.r);int res 0;//表示一共需要多少点int ed -INF; // 上一个点的右端点for(int i 0 ; i n ; i ){if(range[i].l ed){res ;ed range[i].r;}}System.out.println(res);} }根据左端点排序 import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();ListPair v new ArrayList();for(int i 0; i n; i ) {int l sc.nextInt();int r sc.nextInt();v.add(new Pair(l, r));}Collections.sort(v, (a, b) - a.x - b.x);int l Integer.MIN_VALUE;int r Integer.MIN_VALUE;int res 0;for(Pair p : v) {if(p.x r) {// l Math.max(l, p.x);r Math.min(r, p.y); (每次取r的最小值本质上其实还是根据右端点进行排序)} else {res 1;l p.x;r p.y;}}System.out.println(res);}}class Pair implements ComparablePair {int x;int y;public Pair(int x, int y) {this.x x;this.y y;}Overridepublic int compareTo(Pair o) {return Integer.compare(this.x, o.x);} }正确性证明 定义Ans 为所有可行方案中所需点最小数量Cnt为当前方案中所需点的数量(一种可行方案) 为证明 Ans Cnt 我们只需证明 Ans Cnt , Ans Cnt即可。 既然Ans为最小数量易得Ans Cnt。 由于我们是根据右端点进行排序遍历举一个极端例子由图可知Cnt等于4Ans 4。 Ans Cnt Ans Cnt - Ans Cnt。
http://www.hkea.cn/news/14567727/

相关文章:

  • 中国空间站有几个舱段泷澄建设集团网站
  • 免费微信建站有哪些网站做网站必须要公网ip
  • vps 网站 需要绑定域名吗做网站要学什么语言
  • 成都网站运营维护厂家三只松鼠搜索引擎营销案例
  • 大型自适应的网站开发贵阳做网站的
  • php网站开发程序填空题百度公司简介
  • 云南网站备案查询百度推广后台登录页面
  • 点子网创意网优化 seo
  • 免费领手机 网站代做网站的公司
  • 全球网站开发者大会wordpress 搜索 自定义
  • 免费个人logo设计网站wordpress 代码缓存
  • 提升学历的重要性与意义视频优化网站怎么做
  • 网站开发用C网站外链接自己可以怎么做
  • 特性设计的网站兰州seo安安网站建设
  • 手机号码定位网站开发微信商城小程序怎么开发
  • 网站做两个版本建造师在建设部网站何时更新
  • 山西省大同市网站建设公司网站建设代码标准
  • 特效素材网站西安网站排名优化
  • 建立网站是什么建立的网站建站公司哪家好
  • 无锡企业网站建设thinkphp
  • 上海免费模板建站装饰工程施工组织设计
  • 百度博客网站模板下载网站建设代码走查
  • 建设网站服务器是什么网站域名迁移公告
  • 连锁连锁酒店网站建设方案做公司的宣传网站需要注意什么
  • 郑州网站优化公司价位熬夜必备黄
  • 深圳创意网站我做的网站怎样推广
  • 电子商务网站的建设目标是什么蓝翔老师做的网站
  • 网站图片快速加载网站推销怎么做ppt模板
  • 深圳美容网站建设wordpress安装后设置密码
  • 天津企业网站免费网站模板大全