博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3069 贪心
阅读量:2240 次
发布时间:2019-05-09

本文共 710 字,大约阅读时间需要 2 分钟。

题意:直线上有n个点,点i的位置是Xi。从这n个点中选择若干个,给它们加上标记。对每一个点,其距离为R以内的区域里必须有带标记的点(本身为带有标记的点,可以认为与其距离为0的地方有一个带有标记的点)。在满足这个条件的情况下,希望能为尽可能少的点添加标记。求最少要有多少个点被加上标记。
算法:贪心。首先把输入的Xi进行升序排序,从最左侧的点0开始,向右找出最远的一个点j,使得点j加标记后能覆盖点0而点(j+1)加标记后不能覆盖点0,那么点j为第一个要加标记的点,然后向右找出点j不能覆盖的第一个点m,从点m开始,重复上述步骤即可。

#include 
#include
using namespace std;int R,n;int a[1010];void solve(){ int i=0; int ans = 0; while (i < n) { int start1 = a[i++]; while(i < n && start1 + R >= a[i]) { i++; } int start2 = a[i-1]; while (i < n && start2 + R >= a[i]) { i++; } ans++; } cout << ans << endl;}int main(){ while (cin >> R >> n) { if (R == -1 && n == -1) { break; } for (int i=0; i
> a[i]; } sort(a,a+n); solve(); }}

你可能感兴趣的文章
Intellij IDEA使用(四)—— 使用Intellij IDEA创建静态的web(HTML)项目
查看>>
Intellij IDEA使用(五)—— Intellij IDEA在使用中的一些其他常用功能或常用配置收集
查看>>
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>