P1610 鸿山洞的灯
https://www.luogu.com.cn/problem/P1610
题意
- 有n个灯。每个灯有覆盖 dist 。
- 即若第i-1盏与第i+1盏的距离<=dist,则可以关掉第i盏
- 求在保证洞里的光线是充足的情况下,一段区域里能删除的灯的最大值。
想法
- 贪心 + 排序
- 按题意来说第一和最后一盏灯不动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s27fjQep-1591072829540)(…/图库/1590831542288.png)]
// https://www.luogu.com.cn/problem/P1610
// Created by majoe on 2020/5/30.
//
#include<bits/stdc++.h>
using namespace std;
int n,dist,a[100002],sum;
int main()
{
cin>>n>>dist;
for(int i=1; i<=n; i++)
cin>>a[i];
sort(a+1,a+1+n);
for(int i=2; i<=n-1; i++) // 第一和最后一盏灯不动
{
if(a[i+1]-a[i-1]<=dist)
{
a[i]=a[i-1]; // 将之前的灯移动到现在位置,即保存了上一个灯
sum++;
}
}
cout<<sum<<endl;
return 0;
}