博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3258
阅读量:6318 次
发布时间:2019-06-22

本文共 519 字,大约阅读时间需要 1 分钟。

解题方法:二分,因为移走石头的数目和最短的跳跃距离是单调关系,所以考虑用二分,并且一个距离可能有多个石头数目对应,表现在坐标图中就是一条平行于x轴的线段。

还有关于代码中的二分的循环我想详细说明一下:

high定位实际上界+1,是利用了左开右闭,这样的好处是当low=high时,区间中的元素就没有了,这样更易理解。因为肯定有解,所以经过循环low一定会等于当前解+1,然后寻找下一对于本题来说更优的解,所以到最后Low-1就是最后即最优的解;

 

#include 
#include
using namespace std;#define maxn 50010int l,n,m;bool judge(int mid,int* rock){ int sum=0; int tot=0; int j=0; for(int i=1;i<=(n+1);) { int did=rock[i]-rock[i-1]; if(sum+did

转载于:https://www.cnblogs.com/lj-vs-lishimin/archive/2012/06/14/2774396.html

你可能感兴趣的文章
2015.5.21 VS2010中引用Word组件后提示 类型“Microsoft.Office.Interop.Word.ApplicationClass”未定义构造函数 解决方法...
查看>>
动态网页技术的发展
查看>>
17-python-主要内置函数
查看>>
19-python-迭代器、生成器
查看>>
用DataGridView导入TXT文件,并导出为XLS文件
查看>>
maven3常用命令、java项目搭建、web项目搭建
查看>>
1503. [NOI2004]郁闷的出纳员【平衡树-splay】
查看>>
Oracle 2
查看>>
vue js 判断鼠标滚动到底部 数据更新
查看>>
一个ios的各种组件、代码分类,供参考
查看>>
Shell脚本学习之sed详解
查看>>
bugDone
查看>>
Go:json(序列化、反序列化)
查看>>
Python 类的用法
查看>>
动态链接和静态链接的区别
查看>>
解决Python开发过程中依赖库打包问题的方法
查看>>
Git学习系列之命令大全(二)
查看>>
java基础(五)-----关键字static
查看>>
什么是PLI?
查看>>
[UIKit学习]04.关于HUD提示框,定时任务、开发关于资源常见问题
查看>>