https://www.luogu.com.cn/problem/P1589
思路:用循环把开始到结束的每一个点都定义为1 然后循环,看能加几个 m (也就是题目中的 L)。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
bool a[111111111];
ll n, m, ans;
ll mini = 9999999999, maxj = -1;
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int ii, jj;
cin >> ii >> jj;
if (ii <= mini) {
mini = ii;
}
if (jj >= maxj) {
maxj = jj;
}
for (int j = ii; j <= jj; j++) {
a[j]++;
}
}
for (int i = mini; i <= maxj; i++) {
if (a[i] == 1) {
i += m;
ans++;
}
}
cout << ans;
return 0;
}