一、题面

POJ3069

二、题意分析

我的理解是,可以在每个点设置一个监测点,能够监测到范围R内的所有其他点,那么问给出N个点的一维位置,需要在其中挑多少个监测点把所有点都监测到。

贪心解决:

  1.先排序。

  2.考虑第一个点,因为每个点是必须要监测的,那么第一个点需要被监测到,它可以是监测点,也可以是被监测点。贪心的想,为了能监测更多的点,让第一个点作为被监测的点,且是监测范围内最边界上的点。

  3.现在需要考虑,当第一个点往右探测R范围时,最后一个点将是需要设置的监测点。

  4.以这个监测点再往右扫R范围。

  5.完成了一个监测点及其范围内点的覆盖。后面的点类似处理。

三、AC代码

 #include <cstdio>
#include <iostream>
#include <algorithm> using namespace std; const int MAXN = 1e3;
int Data[MAXN+], N, R; int solve()
{
int i = , ans = , cur;
while(i < N)
{
cur = Data[i++];
while(i < N && Data[i] <= cur+R)
i++;
cur = Data[i-];
while(i < N && Data[i] <= cur + R)
i++;
ans++;
}
return ans;
} int main()
{
freopen("input.txt", "r", stdin);
while(scanf("%d %d", &R, &N) != EOF && R != -)
{
for(int i = ; i < N; i++)
scanf("%d", &Data[i]);
sort(Data, Data+N);
printf("%d\n", solve() );
}
return ;
}

最新文章

  1. 配置Git Extension免密码发布代码到CSDN
  2. 【Unix环境高级编程】编写变长参数函数
  3. 40个容易上瘾的HTML5网页游戏,总有一款适合你
  4. 解决在构造函数中使用Session,Session为null的问题
  5. Linux/Unix工具与正则表达式的POSIX规范
  6. css首行缩进两个字符串
  7. 单选按钮(RadioButton)与复选框(CheckBox)的功能与用法
  8. Day4 - Linux分区规划与xshell使用排错
  9. Qt颜色下拉框
  10. 深入浅出多线程——ReentrantLock (二)
  11. 在Winform系统界面中对进展阶段的动态展示和处理
  12. Android应用程序支持不同屏幕(尺寸、密度)
  13. Java基础学习-Random类和Java数组
  14. Java笔试面试题整理第二波
  15. 查看neighbors大小对K近邻分类算法预测准确度和泛化能力的影响
  16. contenttypes组件 (处理大量外键)
  17. css实现table中td单元格鼠标悬浮时显示更多内容
  18. VBscript实现开机自动启动,自动复制原件后启动
  19. C#静态类,静态构造函数,静态变量
  20. cpp-variable-lifetime

热门文章

  1. VBox 安装 Ubuntu Server 的那些坑,键盘乱码、网卡互连、共享目录等
  2. 在Windows里定时执行一个Python文件
  3. 面试题:MySQL性能调优——索引详解与索引的优化 没用
  4. 面试题:filter过滤器 listener 监听器 案例有点用
  5. Python pandas.DataFrame调整列顺序及修改index名
  6. 35.MID() 函数
  7. 在Windows 8上安装SQL Server2012
  8. Django框架 之 modelform组件
  9. [GO]工程管理
  10. java类创建时里面成员执行的先后顺序