贪心专练3 最小标记数问题
来源:互联网 发布:软件实施工资怎么样 编辑:程序博客网 时间:2024/06/05 00:46
题意:在一条直线上,有n个点。从这n个点中选择若干个,给他们加上标记。对于每一个点,其距离为R以内的区域里必须有一个被标记的点。问至少要有多少点被加上标记。
input:6 10 1 7 15 20 30 50
output: 3
————————————————————————————————————————————————————
思路:最优策略:在最左侧开始,往右找到最大R处接近R的地方标记,在此标记点处往右最大R处找到最大覆盖范围为一个周期。再从下一个未覆盖点开始重复该最优策略(即充分最大化R的覆盖区)
代码:
#include <stdio.h>int X[1000];int main(){ int N,R; while(scanf("%d%d",&N,&R)!=EOF) { int i; for(i=0; i<N; i++) scanf("%d",&X[i]); int k=0; int cnt=0; while(k<N) { int s=X[k++];//S用来记录当前位置同时把光标移动到下一位置 while(k<N&&X[k]<=s+R)k++;记录标记点左侧做大覆盖区 int p=X[k-1];标记点 while(k<N&&X[k]<=p+R)k++;记录标记点右侧最大覆盖区 cnt++; } printf("最少标记点数为: %d\n",cnt); } return 0;}
阅读全文
0 0
- 贪心专练3 最小标记数问题
- 贪心专练5 删数问题
- 贪心专练2 最小字典序排序POJ3617
- 贪心专练1 区间调度最多问题
- 练贪心!贪心!贪心!
- 【贪心】删数问题
- 【贪心】删数问题
- 贪心 删数问题
- 贪心,删数问题
- [贪心] 删数问题
- 删数问题 贪心
- [贪心]删数问题
- 贪心 -- 删数问题
- 贪心——区间覆盖问题之区间完全覆盖最小区间数
- Radar Installation(贪心,求最小雷达数)
- 贪心专练4 区间覆盖
- 贪心专练6 最少拦截系统
- 【贪心】【RQNOJ】删数问题
- whoosh使用简介
- JAVA工具类(17)--Java导入导出Excel工具类ExcelUtil
- c#通过ftp下载文件
- subliem text3 输入斜杠"/"会自动删除
- OKhttpClient 简单使用总结
- 贪心专练3 最小标记数问题
- Java NIO系列教程(十一) Pipe
- Vue的路由钩子
- linux定时执行脚本
- 二分图相关问题小结
- 征信“花”一点,才更容易借到钱!
- Linux下搭建单机Oracle11.2数据库
- Keras之父:大多数深度学习论文都是垃圾,炒作AI危害很大
- SLAM的现在与未来