poj 3069 Saruman's Army
2017-10-11 08:24
513 查看
题目大意就不说了
方法是:先排序,然后从第一个点开始往右R个长度看看能覆盖多少点,再从最远能覆盖到的点P开始继续往右R个单位长度,这是点P能覆盖的范围,找到所有这些点做标记,就是最少能标记的点
具体实现如下:
方法是:先排序,然后从第一个点开始往右R个长度看看能覆盖多少点,再从最远能覆盖到的点P开始继续往右R个单位长度,这是点P能覆盖的范围,找到所有这些点做标记,就是最少能标记的点
具体实现如下:
#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; int a[100000]; int main() { int R,n; while(scanf("%d%d",&R,&n)!=EOF) { if(R == -1 && n == -1) break; int ans = 0; for(int i = 1; i <= n; i ++) { scanf("%d",&a[i]); } sort(a+1,a+1+n); int i = 1,r = a[1]; while(i <= n) { int l = r + R; while(a[i] <= l&&i <= n) { i++; } int p = a[i-1]; while(a[i] <= p + R && i <= n) i ++; r = a[i]; // cout <<p <<" "<<r<<" "<<i<<endl; ans++; } cout <<ans<<endl; } return 0; }
相关文章推荐
- poj 3069 Saruman's Army
- poj 3069 Saruman' Army
- POJ:3069 Saruman's Army(贪心)
- POJ 3069 Saruman's Army
- Saruman's Army POJ - 3069
- poj 3069 Saruman's Army
- POJ 3069 Saruman's Army
- poj 3069 Saruman's Army 贪心
- POJ 3069 Saruman‘s Army
- POJ_3069_Saruman's Army
- POJ 3069 Saruman's Army
- POJ 3069 : Saruman\'s Army - 贪心
- POJ 3069 Saruman's Army
- POJ 3069 Saruman's Army 【贪心】
- POJ - 3069 Saruman's Army(贪心)
- Saruman's Army POJ - 3069
- poj 3069 Saruman's Army
- POJ 3069 Saruman's Army
- POJ 3069 Saruman's Army [贪心]
- POJ 3069 Saruman's Army