题目描述

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

输入输出格式

输入格式:

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

输出格式:

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

输入输出样例

输入样例#1:

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

解题思路:

一道模拟题,我们用结构体来存所有泥泞路段的左端点和右端点.先按左端点从小到大排序,从左到右处理,处理每一段泥泞路时,计算当前需多少木板,再向后处理区间重叠情况即可.

AC代码:

 #include<iostream>
#include<cstdio>
#include<algorithm> using namespace std; int n,l,ans;
struct kkk {
int s,e;
bool vis;
}e[]; bool cmp(kkk a,kkk b) {
return a.s < b.s;
} int main() {
// freopen("cover.in","r",stdin);
// freopen("cover.out","w",stdout);
scanf("%d%d",&n,&l);
for(int i = ;i <= n; i++) {
scanf("%d%d",&e[i].s,&e[i].e);
e[i].vis = ;
}
sort(e+,e++n,cmp);
for(int i = ;i <= n; i++) {
if(e[i].s <= e[i-].e) {
e[i-].vis = ;
e[i].s = e[i-].s;
}
}
for(int i = ;i <= n; i++) {
if(!e[i].vis) {
int len = e[i].e - e[i].s;
if(len % l == ) {
ans += len / l;//计算当前区间需木板数
int u = e[i].e - ; //以下为处理重叠区间
for(int j = i + ;j <= n; j++) {
if(u < e[j].s) break;
if(u >= e[j].e) {
e[j].vis = ;
continue;
}
if(u >= e[j].s) e[j].s = u + ;
}
}
else {
ans += (len / l) + ;
int u = e[i].s + (len / l + ) * l - ;
for(int j = i + ;j <= n; j++) {
if(u < e[j].s) break;
if(u >= e[j].e) {
e[j].vis = ;
continue;
}
if(u >= e[j].s) e[j].s = u + ;
}
}
}
}
cout << ans;
return ;
}

最新文章

  1. netstat 1
  2. FZU 1894 志愿者选拔(单调队列)
  3. 结合Domino打造全功能的Grid
  4. saltstack实战2--远程执行之目标(target)
  5. C#_dropdownlist_1
  6. 为什么在Windows有两个临时文件夹的环境变量Temp和Tmp?
  7. PHP基础语法随记
  8. (转载)Setup Factory 会话变量
  9. LInux下安装jdk与环境配置与Webstorm的安装
  10. MVC 过滤器1
  11. JAVA 局部变量表
  12. redis源码分析之有序集SortedSet
  13. 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送
  14. docker文件复制到centos/linux/ubantun环境下
  15. 《DSP using MATLAB》Problem 7.12
  16. Latex 算法Algorithm
  17. 【QT】error: &#39;SIGNAL&#39; was not declared in this scope
  18. winform 子窗体调用父窗体中的方法
  19. php5.3新垃圾回收机制详解
  20. SQL 函数 DateDiff()

热门文章

  1. CAS原子操作实现无锁及性能分析
  2. 翻译:A Tutorial on the Device Tree (Zynq) -- Part III
  3. ARC机制之__strong具体解释
  4. NullpointerException真的一定要被预防?
  5. REST RPC HTTP vs 高性能二进制协议 序列化和通信协议
  6. java 获取时间戳
  7. web中使用svg失量图形及ie8以下浏览器的处理方式
  8. HDU4283 You Are the One —— 区间DP
  9. 项目中Redis分库
  10. 【Selenium】显示、隐式等待