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

    数据下载

  • 相关阅读:
    asp.net 下载EXCEL文件
    C# 泛型实现Table与实体的相互转换
    SQL处理数据并发,解决ID自增
    html Canvas 画图 能够选择并能移动
    AJAX get/post;
    (转) C# Async与Await的使用
    FormattableString 取代特定区域字符串
    少用 string.Format
    少用 string.Format
    如何重写object虚方法
  • 原文地址:https://www.cnblogs.com/ssf-lrk/p/11165966.html
Copyright © 2011-2022 走看看