查找最少标记点 (贪心)
2016-02-29 10:26
190 查看
输入:
N=6
R=10
X={1,7,15,20,30,50}
输出:
3
可从最左边的点开始,距离为R以内的最远的点.因为最左的区域没有覆盖的意义,所以应该尽可能覆盖靠右的点.不断重复此过程.
<<挑战程序设计竞赛>>读后感
N=6
R=10
X={1,7,15,20,30,50}
输出:
3
可从最左边的点开始,距离为R以内的最远的点.因为最左的区域没有覆盖的意义,所以应该尽可能覆盖靠右的点.不断重复此过程.
int N,R; int X[MAX]; void solve() { sort(X,X+N); int i=0,ans=0; while(i<N){ //s是没有覆盖的最左的点的位置 int s=X[i++]; while(i<N && X[i]<=s+R) i++; //一直向右前进知道距s的距离大于R的点,p是新加上标记的点的位置 int p=X[i--]; while(i<N && X[i]<=p+R) i++; //一直向右前进直到距p的距离大于R的点 ans++; } printf("%d\n",ans); }
<<挑战程序设计竞赛>>读后感
相关文章推荐
- Android优化——UI优化(四) 使用stytle
- C++先序遍历输入树的创建
- 【DSP开发】CMD文件
- 面试时问aop是什么该怎么回答
- Ubuntu下定时任务和自启动任务的部署
- 【c/c++】C++代码一次读取文本文件全部内容到string对象
- 编辑距离算法
- 半年总结之哪些年的管理
- ios卡牌游戏项目源码
- EasyAR尝鲜系列教程之视频播放功能的实现
- JSP之初识2
- EL表达式
- Android优化——UI优化(三)使用ViewStub延迟加载
- There is no ic_menu_refresh icon in android:drawable?
- iOS实际网络检测框架RealReachability
- AmaterasUML是个人觉得最好用的Eclipse UML插件
- 如何「偷」Android 的内存?
- 转帖:解决jquery.js在myeclipse中报错的问题
- Android布局— — —帧布局
- Nginx配置Q&A