题意:有一个宽为w的刷子,刷子只能沿着x轴刷,有n个灰尘的坐标,问至少多少次才能刷完所有的灰尘。
思路:排序之后直接枚举。
#include <bits/stdc++.h>
using namespace std;
int y[50000+1000];
int n, w;
bool cmp(int a, int b)
{
return a<b;
}
int main(void)
{
int T, cas=1;
scanf("%d", &T);
while (T--)
{
scanf("%d %d", &n, &w);
for (int i = 0; i < n; i++)
scanf("%*d %d", &y[i]);
sort(y,y+n,cmp);
int ans = 1, tmp = y[0]+w;
for (int i = 1; i < n; i++)
{
if (y[i]>tmp)
{
tmp = y[i]+w;
ans++;
}
}
printf("Case %d: %d\n", cas++, ans);
}
return 0;
}