POJ3069 Saruman's Army【贪心】
来源:互联网 发布:ocr软件免费下载 编辑:程序博客网 时间:2024/05/21 17:22
问题链接:POJ3069 Saruman's Army。
题意简述:直线上有N个点。点i的距离是Xi。从这N个点中选取若干点加上标记。对于每个点,与其距离为R的范围内必有做标记的点(包括自身)。求至少标记多少点才能满足要求。
问题分析:
这个问题可以用贪心法来解决。
先将各个点排序,从小到大顺序找必须标记的点,并且将其距离R以内的点排除。反复这个过程即可。
程序说明:(略)
AC的C++语言程序如下:
/* POJ3069 Saruman's Army */#include <iostream>#include <algorithm>using namespace std;const int N = 1000;int a[N];int solve(int n, int r){ int ans = 0, i = 0; while(i < n) { int start = a[i++]; // 遍历start范围内的点 while(i < n && a[i] <= start + r) i++; // 标记点计数,标记点 ans++; start = a[i - 1]; // 遍历start范围内的点 while(i < n && a[i] <= start + r) i++; } return ans;}int main(){ int r, n; while(cin >> r >> n && !(r == -1 && n == -1)) { for(int i=0; i<n; i++) cin >> a[i]; sort(a, a + n); cout << solve(n, r) << endl; } return 0;}
阅读全文
0 0
- poj3069 Saruman's Army(贪心)
- POJ3069 Saruman's Army(贪心)
- poj3069 Saruman's Army 贪心
- POJ3069 Saruman's Army【贪心】
- poj3069 Saruman's Army 贪心
- POJ3069 Saruman's Army (贪心)
- POJ3069-贪心-Saruman's Army
- POJ3069 Saruman's Army Greedy(贪心)
- POJ3069-Saruman's Army-贪心水题
- poj3069 Saruman's Army (贪心)
- poj3069 Saruman's Army(贪心,水)
- poj3069 Saruman's Army(经典贪心)
- POJ3069 Saruman's Army(贪心)
- poj3069 Saruman's Army
- POJ3069 Saruman's Army
- POJ3069 Saruman's Army
- POJ3069-Saruman`s Army
- POJ3069 Saruman's Army
- 如何在腾讯云上部署 Facebook的ParlAI训练框架
- sql server数据库:创建数据库、建立数据库用户、为用户赋予权限
- 静态链接库与动态链接库的使用
- hunnu 10611 聪明的木匠 (优先队列)
- 读《卓越程序员密码》有感
- POJ3069 Saruman's Army【贪心】
- 三篇文章了解 TiDB 技术内幕——说存储
- python caffe报错:No module named google.protobuf.internal
- (13)spring boot中常用的注解@RestController和@RequestMapping
- 谷歌 I/O 大会亮点解析——从移动时代迈向 AI 时代
- Node.js调试大法 — v8_inspector
- 『拼多多』产品体验报告
- mysql 查询大全 select 大全
- 理解Linux系统/etc/init.d目录和/etc/rc.local脚本