POJ3069 Saruman's Army(贪心)
来源:互联网 发布:js引用高德地图 编辑:程序博客网 时间:2024/05/22 11:03
POJ3069
描述:
在街道上有n个点,在这些点上放置路灯,告诉你路灯的照射范围为R,求最少放置多少路灯能照亮所有的点。运用贪心即可:从最左边的点开始,找到这个点向右范围R以内的最远能到达的点,在这里设置路灯,然后前进到大于R的点(跳过右边路灯能覆盖到的范围),剩下的部分也照此处理。
分析:
首先从最左边开始考虑,显然,从左边起,标记的第一个点,在最左边点的右侧。且选择距离R内 距离其最远的点。
接着,把上一次标记的这个点 能影响的最右边的点 的下一个点,作为最左边的点,开始又一次标记。
注:挑战程序竞赛p45
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;#define maxn 10010int N,R,i;int a[maxn];int main(){ cin>>N>>R; for(i=0;i<N;i++) cin>>a[i]; sort(a,a+N); int i=0,ans=0; while(i<N){ //s是没有被覆盖的最左的位置 int s=a[i++]; //一直向右前进直到距s的距离大于R的点 while(i<N &&a[i]<=s+R) i++; //p是新加上标记的点的位置 int p=a[i-1]; //一直向右前进距p的距离大于R的点 while(i<N &&a[i]<=p+R) i++; ans++; } cout<<ans<<endl; return 0;}
阅读全文
0 0
- 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 (贪心)
- 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
- CenterOS 设置静态IP 方法
- 使用redis缓存加索引处理数据库百万级并发
- 【tyvj1075】硬币游戏(dp)
- cublasSgemm函数实现矩阵乘
- 录屏软件
- POJ3069 Saruman's Army(贪心)
- Linux安装Zookeeper
- Python---6.lambda表达式
- CSS(盒模型)
- 你是如何浏览器访问百度的?
- 前端面试系列之----补充问题集合
- Core Audio 枚举电脑上音频设备.
- 最大熵模型
- zookeeper (一)