zoukankan      html  css  js  c++  java
  • 洛谷P1589 泥泞路

    洛谷P1589 泥泞路

    题目描述

    暴雨过后,FJ的农场到镇上的公路上有一些泥泞路,他有若干块长度为L的木板可以铺在这些泥泞路上,问他至少需要多少块木板,才能把所有的泥泞路覆盖住。

    输入输出格式

    输入格式:

    第一行为正整数n(≤10000)和L(≤10000),分别表示有多少段泥泞路和木板的长度;接下来n行,每一行两个整数s和e(s≤e≤10^9),表示每一段泥泞路的起点和终点。

    输出格式:

    仅一个正整数,表示木板数。

    输入输出样例

    输入样例#1: 复制
    3 3
    1 6
    13 17
    8 12
    输出样例#1: 复制
    5

     代码

    一个数轴,贪心一下就能过了。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    const int maxn=10000+5;
    using namespace std;
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9') {if(ch=='-') f=-1; ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}
        return x*f;
    }
    int n,l,ans;
    struct node
    {
        int x,y;
        bool operator < (const node& j) const {
            return x==j.x? y<j.y:x<j.x;
        }
    }e[maxn];
    int main()
    {
        n=read();l=read();
        for(int i=1;i<=n;i++)
        {e[i].x=read();e[i].y=read();
        if(e[i].x>e[i].y) swap(e[i].x,e[i].y);}
        sort(e+1,e+n+1);
        int a=e[1].x;
        for(int i=1;i<=n;i++)
        {
            while(a<e[i].y)
            {
                a=a+l;
                ans++;
            }
            a=max(a,e[i+1].x);
        }
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    C&Pointer求解wc问题
    软件测试作业2
    第六周小组作业
    WordCount改进 小组项目
    WordCount
    我的“游戏”人生
    软件测试第6周小组作业
    软件测试第4周小组作业:WordCount优化
    软件测试第二周个人作业:WordCount
    MVC模式下基于SSH三大框架的java web项目excel表格的导出(不依赖另外的jar包)
  • 原文地址:https://www.cnblogs.com/huihao/p/7784304.html
Copyright © 2011-2022 走看看