bzoj1689 / P1589 [Usaco2005 Open] Muddy roads 泥泞的路

时间:2020-12-03 07:06:55

P1589 [Usaco2005 Open] Muddy roads 泥泞的路

简单的模拟题。

给水坑排个序,蓝后贪心放板子。

注意边界细节。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct data{int l,r;}a[];
bool cmp(const data &A,const data &B){
return A.l<B.l||(A.l==B.l&&A.r>B.r);
}
int n,L,tl=-,ans;
int main(){
scanf("%d%d",&n,&L);
for(int i=;i<=n;++i)
scanf("%d%d",&a[i].l,&a[i].r);
sort(a+,a+n+,cmp);
for(int i=,q;i<=n;++i){
--a[i].r;
if(a[i].r<=tl) continue;
if(tl<a[i].l){
q=(a[i].r-a[i].l)/L;
ans+=q; tl=a[i].l-+q*L;
if(tl<a[i].r) ++ans,tl+=L;
}else if(tl<a[i].r){
q=(a[i].r-tl)/L;
ans+=q; tl+=q*L;
if(tl<a[i].r) ++ans,tl+=L;
}
}printf("%d",ans);
return ;
}