zoukankan      html  css  js  c++  java
  • P1250 种树 题解

    题目描述
    一条街道的一边有几座房子,因为环保原因居民想要在路边种些树,路边的居民被分割成 n 块,并被编号为 1…n。每块大小为一个单位尺寸并最多可种一棵树。每个居民想在门前种些树并指定了三个数b,e,t。这三个数分别表示该居民想在b和e之间最少种t棵树,当然b≤e,t≤e-b+1,允许居民想种树的子区域可以交叉。出于资金紧缺的原因,环保部门请你求出能够满足所有居民的种树要求时所需要种的树的最少数量。 
    输入
    第一行为 n,表示区域的个数。
    第二行为 h,表示房子的数目。
    下面 h 行描述居民的需要:b,e,t(0<b≤e≤30000,t≤e-b+1)分别用一个空格分开。
    输出
    输出只有一个数,为满足所有居民的建议,所需要种树的最少数量。 
    样例输入
    9
    4
    1 4 2
    4 6 2
    8 9 2
    3 5 2
    
    样例输出
    5
    
    提示
    30% 的数据满足 0<n≤1000,0<h≤500;
    100% 的数据满足 0<n≤3×10^4,h≤5000,0<b≤e≤3×10^4 ,t≤e−b+1。

     

    题解:

    此题正解为贪心,运用到结构体。首先结束位置排序,对每个区间一次处理。随后从前往后扫描区间,统计已有的树的个数,若已选点超过要求个数,则continue,否则从后往前,添加缺少的覆盖点。最后输出ans。

    贪心参考代码:

    View Code


    本蒟蒻用了一种简单暴力去解这道题,简单易懂

    暴力参考代码:

    View Code

    数据下载

  • 相关阅读:
    构造方法和析构方法调用上级同类方法的问题
    PHP中parent关键词
    PHP中访问控制修饰符
    PHP中继承
    PHP中this,self,parent的区别
    PHP中的构造方法和析构方法
    PHP中类中成员及常量
    怎样设计一个好的数据库
    PHP执行原理
    PHP对象在内存中的分配
  • 原文地址:https://www.cnblogs.com/ssf-lrk/p/11165966.html
Copyright © 2011-2022 走看看