zoukankan      html  css  js  c++  java
  • 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<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<iostream>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    
    int n,len;
    int sum;
    int max(int x,int y)//手写max
    {
    	return x > y ? x : y;
    }
    struct node//定义一个结构体,用来存储每一段路的开始与结束点
    {
    	int begin;
    	int end;
    }p[10003];
    int cmp(node x,node y)//排序条件
    {
    	return x.begin < y.begin;
    }
    int main()
    {
    	scanf("%d %d",&n,&len);
    	for (int i=1;i<=n;i++)
    	{
    		scanf("%d %d",&p[i].begin,&p[i].end);
    	}
    	sort(p + 1, p + 1 + n, cmp);
    	int j = p[1].begin;//j的值是第一段路开始的节点值
    	for (int i=1;i<=n;i++)//为每一条路铺木板
    	{
    		while (j < p[i].end)//在一段路里面铺木板
    		{
    			j += len;//加上一块木板
    			sum++;//木板的数目加一
    		}
    		//将木板铺到路上,木板的末尾是下一段路的开始
    		j = max(j, p[i + 1].begin);
    	}
    	printf("%d",sum);
    }
     
     
  • 相关阅读:
    debug和release转载
    坐标系与基本图元(8)
    坐标系与基本图元(7)
    坐标系与基本图元(5)
    坐标系与基本图元(6)
    坐标系与基本图元(4)
    坐标系与基本图元(3)
    坐标系与基本图元(2)
    BZOJ 1090
    Xor
  • 原文地址:https://www.cnblogs.com/yuexiliuli/p/11572447.html
Copyright © 2011-2022 走看看