POJ_3069 Saruman's Army 【贪心】
2024-09-02 14:20:45
一、题面
二、题意分析
我的理解是,可以在每个点设置一个监测点,能够监测到范围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 ;
}
最新文章
- 配置Git Extension免密码发布代码到CSDN
- 【Unix环境高级编程】编写变长参数函数
- 40个容易上瘾的HTML5网页游戏,总有一款适合你
- 解决在构造函数中使用Session,Session为null的问题
- Linux/Unix工具与正则表达式的POSIX规范
- css首行缩进两个字符串
- 单选按钮(RadioButton)与复选框(CheckBox)的功能与用法
- Day4 - Linux分区规划与xshell使用排错
- Qt颜色下拉框
- 深入浅出多线程——ReentrantLock (二)
- 在Winform系统界面中对进展阶段的动态展示和处理
- Android应用程序支持不同屏幕(尺寸、密度)
- Java基础学习-Random类和Java数组
- Java笔试面试题整理第二波
- 查看neighbors大小对K近邻分类算法预测准确度和泛化能力的影响
- contenttypes组件 (处理大量外键)
- css实现table中td单元格鼠标悬浮时显示更多内容
- VBscript实现开机自动启动,自动复制原件后启动
- C#静态类,静态构造函数,静态变量
- cpp-variable-lifetime
热门文章
- VBox 安装 Ubuntu Server 的那些坑,键盘乱码、网卡互连、共享目录等
- 在Windows里定时执行一个Python文件
- 面试题:MySQL性能调优——索引详解与索引的优化 没用
- 面试题:filter过滤器 listener 监听器 案例有点用
- Python pandas.DataFrame调整列顺序及修改index名
- 35.MID() 函数
- 在Windows 8上安装SQL Server2012
- Django框架 之 modelform组件
- [GO]工程管理
- java类创建时里面成员执行的先后顺序