题目链接:

https://vjudge.net/problem/POJ-3069

题目大意:

在一条直线上,有n个点。从这n个点中选择若干个,给他们加上标记。对于每一个点,其距离为R以内的区域里必须有一个被标记的点。问至少要有多少点被加上标记。

思路:

我们从最左边的开始考虑。对于这个点,到距其R以内的区域必须要有带有标记的点。带有标记的点一定在其右侧(包含这个点本身)。给从最左边开始,距离为R以内的最远的点加上标记,尽可能的覆盖更靠右边的点。对于添加了标记的点右侧相距超过R的下一个点,采用同样的方法找到最右侧R距离以内最远的点添加标记。在所有点都被覆盖之前不断重复这一过程。

 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std; int n, r;
int a[]; int main()
{
while(scanf("%d%d", &r, &n) != EOF)
{
if(r < )break;
for(int i = ; i < n; i++)scanf("%d", &a[i]);
sort(a, a + n);
int tot = ;
for(int i = ; i < n; i++)
{
int left = a[i];
int star = a[i];
for(; i < n; i++)
{
if(a[i] - left > r)break;
star = a[i];
}
tot++;
i--;
//cout<<star<<endl;
for(; i < n; i++)
{
if(a[i] - star > r)break;
}
i--;
}
cout<<tot<<endl;
}
return ;
}

最新文章

  1. 阿里云直播 C# SDK 如何使用
  2. c# 针对SAP服务通讯
  3. 解决Win7 软件图标不显示--Win7图标异常,快捷方式不显示解决方法
  4. Entity Framework 6.0 源码解读笔记(一)
  5. git reflog 和git log :no branch git 提交方式
  6. C#中hashtable的赋值、取值、遍历、排序操作
  7. U1总结
  8. 资源文件(.RES)的应用
  9. TokuDB性能测试报告
  10. [原创]一种专门用于前后端分离的web服务器(JerryServer)
  11. Shell脚本学习 - 函数,输入输出重定向,文件
  12. CentOS7部分调优命令
  13. Pack
  14. HTTP请求协议
  15. Node.js学习起步
  16. Python实现百度贴吧自动顶贴机
  17. ubuntun 18.04 安装google浏览器
  18. Python中*args和**kwargs
  19. MVC使用Redis实现分布式锁
  20. FluentScheduler:开源轻量级定时任务调度架构

热门文章

  1. 目标检测网络之 YOLOv2
  2. MYSQL数据库学习十六 安全性机制
  3. Redis相关命令
  4. python处理点云数据并生成三维点云模型
  5. [poj2367]Genealogical tree_拓扑排序
  6. heartbeat错误排查
  7. freemarker 类型转换
  8. QuietHit小Game
  9. Flask 部署和分发
  10. 在thinkphp框架中使用后台传值过来的数组,在hightcart中使用数组