题目链接

https://www.luogu.org/problemnew/show/P1589

解题思路

用结构体存下每一段泥泞路的左端点和右端点,然后用sort根据左端点排序,采用贪心的思想,从左往右遇到未覆盖的点ans++,然后去覆盖l的长度,这时现在覆盖到的位置就是max(下一段区间的左端点,当前覆盖到的位置)。注意每一个泥泞路段是一个区间,例如【2,5】实际上就是三个单位长度,它具有四个端点,我们记录的是单位长度,所以while里面的是<而不是<=。

AC代码

 #include<iostream>
#include<algorithm>
using namespace std;
int n,l,ans;
struct ee{
int e,s;
}a[];
bool cmp(ee a,ee b){
return a.s<b.s;
}
int main(){
cin>>n>>l;
for(int i=;i<=n;i++) cin>>a[i].s>>a[i].e;
sort(a+,a+n+,cmp);
int d=a[].s;
for(int i=;i<=n;i++){
while(d<a[i].e){
d+=l;
ans++;
}
d=max(d,a[i+].s);
}
cout<<ans;
return ;
}

最新文章

  1. JS操作cookie
  2. 汇编、c语言、c++的一些想法。
  3. C#基础---IComparable用法,实现List&lt;T&gt;.sort()排序
  4. 多线程之NSOperation和NSOperationQueue
  5. 大数据量的csv文件如何导入到 sql 数据库
  6. linux网络故障解决方法
  7. MyEclipse +Servlet 乱码
  8. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
  9. [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.3
  10. (转载)Flash Number 数据类型
  11. 【转自CSDN】深入 Microsoft.VisualBasic.Strings.StrConv 簡繁轉換
  12. C++快速排序实现(quicksort)
  13. 【转】基于RSA算法实现软件注册码原理初讨
  14. CareerCup chapter 1 Arrays and Strings
  15. DNS 本质
  16. JZ2440存储管理器--SDRAM
  17. Unity日记—对象缓存池
  18. json格式化
  19. openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)
  20. 使用java开发微信公众平台(1)

热门文章

  1. python 安装opencv及问题解决
  2. Solr的学习使用之(十)数据库(Oracle、SqlServer)原有的全文索引功能和Solr对比?
  3. 脚本_查找 Linux 系统中的僵尸进程
  4. cut 从文本中提取一段文字并输出
  5. 用jquery实现图片轮播
  6. B/S大文件断点续传
  7. 禁止input输入框输入指定内容
  8. 本页面用来演示如何通过JS SDK,创建完整的QQ登录流程,并调用openapi接口
  9. Winner
  10. Ponds