zoukankan      html  css  js  c++  java
  • POJ 2437 Muddy roads【贪心】(区间覆盖)

    题目链接:https://vjudge.net/contest/194475#problem/C

    题目大意:

    有n滩泥 木板长度为L 求至少需要多少木板才能覆盖这些泥

    解题思路:

    把泥块的起点升序排序,分三种情况讨论
    1、前一个木板完全覆盖了当前的泥 跳过
    2、前一个木板覆盖了一部分 则计算铺完剩下的泥需要多少木板
    3、前一个木板完全没接触到当前的木板 则更新端点

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    #define MAXN 10000+100
    typedef struct
    {
        int s, e;
    }node;
    node a[MAXN];
    bool cmp(node a, node b)
    {
        return a.s < b.s;
    }
    int main()
    {
        int n, l;
        scanf("%d %d", &n, &l);
        for (int i = 0; i < n; i++)
            scanf("%d %d", &a[i].s, &a[i].e);
        sort(a, a + n, cmp);
        int ans = 0;
        int last = -1;
        for (int i = 0; i < n; i++)
        {
            if (last >= a[i].e)
                continue;
            if (last > a[i].s)
            {
                int num = ceil((a[i].e - last)*1.0 / l);      //向上取整函数
                last += num * l;
                ans += num;
            }
            else
            {
                int num = ceil((a[i].e - a[i].s)*1.0/l);
                last = a[i].s + num * l;
                ans += num;
            }
        }
        printf("%d
    ", ans);
        return 0;
    }
    
    

    2018-04-21
  • 相关阅读:
    layui 相关知识
    ideal debug 启动不起来
    删除命令 rm -rf maven-project-jxcg.zip 解压 unzip maven-project-jxcg.zip
    vsb 配置
    cmd dos
    switch
    Element UI 框架搭建
    mysql 远程连接设置
    YApi可视化接口管理平台 接口
    报403错误
  • 原文地址:https://www.cnblogs.com/00isok/p/8902344.html
Copyright © 2011-2022 走看看