poj 3069 Saruman's Army (贪心)
2015-08-07 12:40
295 查看
简单贪心。
从左边开始,找 r 以内最大距离的点,再在该点的右侧找到该点能覆盖的点。如图。
自己的逻辑有些混乱,最后还是参考书上代码。(《挑战程序设计》 P46)
从左边开始,找 r 以内最大距离的点,再在该点的右侧找到该点能覆盖的点。如图。
自己的逻辑有些混乱,最后还是参考书上代码。(《挑战程序设计》 P46)
/****************************************** Problem: 3069 User: Memory: 668K Time: 16MS Language: G++ Result: Accepted ******************************************/ #include <iostream> #include <cstdio> #include <algorithm> using namespace std; int a[1005]; int main() { int r, n, i; while (scanf("%d%d", &r, &n) == 2) { if (r == -1) break; for (i = 0; i < n; ++i) scanf("%d", &a[i]); sort(a, a + n); int ans; ans = i = 0; while(i < n) { int s = a[i++]; // s is the first point uncovered while (i < n && a[i] <= s + r) ++i; // s can cover range int p = a[i - 1]; // p should be covered while (i < n && a[i] <= p + r) ++i; // p can cover range ++ans; // the point is p } printf("%d\n", ans); } return 0; }
相关文章推荐
- windows下python文件与文件夹操作
- OC学习笔记之单例模式
- Tog Cat 打印日志过滤
- underscore template的应用
- Java窗体加载时组件不显示的解决方法
- 认识 Android 中的 Activity 组件 总结
- Ubuntu14.04修改开机动画
- 使用Mysql修改密码命令更改root的密码
- 19.2 Partitioning Types--range 分区
- Android 存储:Internal Storage的用法以及与External storage 的区别
- 判断agent(是电脑还是手机,是Android还是IOS)
- Codeforces 551D GukiZ and Binary Operations(矩阵快速幂)
- 【暑假】[实用数据结构]UVAlive 3027 Corporative Network
- leetcode--Word Ladder II
- Jquery 异步提交表单(post)
- WCF异常信息:由于内部错误,服务器无法处理该请求...
- 【黑马程序员】Java笔记--内部类
- 理解Quartz原理
- 【bzoj3163】 HEOI2013Eden的新背包问题 多重背包
- Altova XMLSpy格式化json的问题