poj 3258 River Hopscotch 【二分】

题目真是不好读,大意例如以下(知道题意就非常好解了)

大致题意:

一条河长度为 L,河的起点(Start)和终点(End)分别有2块石头,S到E的距离就是L。

河中有n块石头,每块石头到S都有唯一的距离

问如今要移除m块石头(S和E除外),每次移除的是与当前最短距离相关联的石头,要求移除m块石头后,使得那时的最短距离尽可能大,输出那个最短距离。

//Memory Time 
//420K   391MS #include<iostream>
#include<algorithm>
using namespace std;int main(void)
{int L;  //河总长int n;  //河中石头数(除起点S和终点外E)int m;  //移除石头数while(cin>>L>>n>>m){/*Input & Initial*/int* dist=new int[n+2];  //第i块石头到起点石头的距离为dist[i]dist[0]=0;    //起点Sdist[n+1]=L;  //终点Eint low=L;   //上界(一次跳跃的最短距离)int high=L;   //下界(一次跳跃的最大距离)for(int i=1;i<=n+1;i++){if(i<=n)   //仅输入1~n,当i=n+1时仅用于寻找lowcin>>dist[i];if(low > dist[i]-dist[i-1])low=dist[i]-dist[i-1];}sort(dist,dist+(n+2));   //依据石头到S的距离升序排列/*Binary-Search*/while(low<=high){int mid=(low+high)/2;  //对最大跳和最小跳的距离折中,二分查找mid相对于最优解是偏大还是偏小//如果mid是移除m个石头后的最短距离int delrock=0;    //利用当前的mid值能移除的石头数int sum=0;   //类比POJ 3273, 这里是 连续距离的累加值//当在第i个距离累加后sumfor(int i=1;i<=n+1;){if( (sum+=dist[i]-dist[i-1]) <= mid){i++;delrock++;}else   //当从第i个距离累加到i+k个距离后,若sum>mid,则k个距离作为一段{i++;sum=0;  //sum置0,从第i+k+1个距离又一次累加}}if(delrock<=m)   //本题难点之中的一个:即使delrock==m也不一定找到了最优解low=mid+1;   //用当前mid值移除的石头数小于规定数,说明mid偏小else             high=mid-1;  //反之mid偏大}/*Output & Relax*/cout<<low<<endl;delete dist;}return 0;
}


转载于:https://www.cnblogs.com/hrhguanli/p/3929765.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的socks5全局代理_Python写的Socks5协议代理服务器

直接上代码&#xff1a;#!/usr/bin/python# Filename s5.py# Python Dynamic Socks5 Proxy# Usage: python s5.py 1080# Background Run: nohup python s5.py 1080 &import socket, sys, select, SocketServer, struct, timeclass ThreadingTCPServer(SocketServer.Threadi…

Zencart 给DHL运费模块增加一个分区的方法

Zencart 给DHL运费模块增加一个分区的方法 zencart給DHL運費模塊添加一個分區的方法很簡單&#xff0c;因爲該模塊已經做好了允許用戶添加更多分區的設置。 具體方法如下&#xff1a; 首先打開該運費模塊&#xff08;includes\modules\shipping\dhlzones.php 文件&#xff09;&…

linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器

原标题&#xff1a;你应该还不知道&#xff0c;Linux终端下的 Markdown 文档查看器现在&#xff0c;Markdown 差不多已经成为技术文档的标准。它可以实现技术文档的快捷写作&#xff0c;以及输出发布。同样都是标记语言&#xff0c;但Markdown 文档相比HTML更加简单。一是体现在…

更换硬盘

更换硬盘 1. 根据管理平台的信息&#xff0c;找到损坏磁盘的位置 2. 取下坏盘&#xff0c;对比新盘的PN号 3. 将新的硬盘插回到磁盘柜 4. vol status -s 查看Spare Disks信息 &#xff0c;找到识别码&#xff0c;例如4a.05.15 5. disk assign 4…

Android之 Fragment

什么是Fragment&#xff1a; Android是在Android 3.0 (API level 11)开始引入Fragment的。 可以把Fragment想成Activity中的模块&#xff0c;这个模块有自己的布局&#xff0c;有自己的生命周期&#xff0c;单独处理自己的输入&#xff0c;在Activity运行的时候可以加载或者移除…

怎么用python检索法律_法律人,你的检索与处理信息的方式,决定了你的专业程度...

昨天在后台收到一位读者留言&#xff1a;“我花了2天时间到各法院官网、法律数据库网站、裁判文书及判例网站上搜索近十年我国经济类犯罪案例。好不容易将案件手动分类&#xff0c;整理判例的定罪和量刑情况给当前的案子作参考&#xff0c;现在看到了结论&#xff0c;也不敢确定…

HDU1753: 大明A+B

大明AB Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5533 Accepted Submission(s): 1870 Problem Description话说&#xff0c;经过了漫长的一个多月&#xff0c;小明已经成长了许多&#xff0c;所以他改了…

倒戈了,转投简书 --------

深情自白 还记得数月前那个月黑风高的晚上&#xff0c;笔主偶遇简书&#xff0c;被那婀娜多姿的Markdown输出深深吸引不能自拔&#xff0c;从此立下毒誓要两边同时发布。然而天有不测风云&#xff08;这边的太丑&#xff09;&#xff0c;前思后想寝食难安之后作出决定&#xff…

如何通过windows控制linux,如何从Windows远程控制Linux | MOS86

ifconfig将显示您需要连接的IP地址。 如果Linux盒具有以太网连接&#xff0c;则该地址将在eth0旁边列出。 如果以无线方式连接&#xff0c;请查找针对wlan0列出的IP地址。如果这不容易或不方便&#xff0c;则有另一种方法几乎同样简单。 在浏览器窗口中&#xff0c;连接到路由器…

简明Vim练级攻略(初学者)

http://blog.jobbole.com/18339/转载于:https://www.cnblogs.com/sherry00/p/3931023.html

安卓psp模拟器联机教程_刺激战场国际服下载方法教程!安卓ios模拟器都有

刺激战场国际服不需要VPN&#xff0c;不需要加速器。刺激战场国际服账号可以使用微信登入&#xff0c;进游戏页面点击more就可以了。安卓系统&#xff1a;①下载网易UU加速器&#xff0c;通过网易UU加速器平台直接下载。②有的机型不能通过网易UU下载&#xff0c;但是可以通过Q…

[转载] 民兵葛二蛋——第1集

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2013/01/15/2860782.html

菜鸟的jQuery源码学习笔记(三)

1 each: function(callback, args) {2 return jQuery.each(this, callback, args);3 }, each:这个调用了jQuery.each方法&#xff0c;来遍历当前集合。我们先来看看jQuery.each方法: //args是一个数组 each: function(obj, callback, args) {var value,i 0,length o…

docker pdf 中文版 linux,Docker入门实战手册PDF

一、为什么要使用 Docker&#xff1f;1 、快速交付应用程序• 开发者使用一个标准的image 来构建开发容器&#xff0c;开发完成之后&#xff0c;系统管理员就可以使用这个容器来部署代码• Docker 可以快速创建容器&#xff0c;快速迭代应用程序&#xff0c;并让整个过程可见…

C#环境下的钩子详解

C#环境下的钩子详解 摘自网上供自己备查: http://www.csharpwin.com/csharpspace/2423.shtml 1、 WINDOWS的消息机制 2、 HOOK介绍 3、 HOOK链 4、 HOOK钩子的作用范围 5、 HOOK类型 6、 回调函数 7、 HOOK钩子的安装与卸载 8、 HOOK实例演示 WINDOWS的消息机制 Windows系统是…

福昕PDF阅读器的图章妙用

前几天同事发来一个pdf文件&#xff0c;说要把其中一部分遮住。我本来还想用pdf编辑软件直接给删除&#xff0c;结果发现是扫描文件制作的pdf不能编辑&#xff0c;大呼坑爹又要用ps了&#xff08;那家伙太慢&#xff0c;太占内存&#xff09;。 不想打开ps&#xff0c;于是开始…

openldap linux客户端,OpenLDAP 客户端安装部署

六、OpenLDAP客户端验证1、配置/etc/openldap/ldap.conf默认客户端不允许查询OpenLDAP条目信息&#xff0c;如果需要让客户端查询条目&#xff0c;需要添加OpenLDAP服务端的URI以及BASE条目&#xff0c;命令如下&#xff1a;2、客户端验证用户的信息添加我已经在上篇博文里面介…

奋斗的IT小小鸟

写了两集的《迷茫的IT小小鸟》&#xff0c;在经过了这么长的堕落与反思的阶段&#xff0c;终于也有点豁然开朗的感觉了&#xff0c;这学期以来浪费了太多的时间&#xff0c;本来规划的很好的时间和任务在自己一次次的说服不了自己的过程中终究没能实现&#xff0c;在这个期间更…

基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现

概述&#xff1a; ASP.NET Web API 的好用使用过的都知道&#xff0c;没有复杂的配置文件&#xff0c;一个简单的ApiController加上需要的Action就能工作。但是在使用API的时候总会遇到跨域请求的问题&#xff0c; 特别各种APP万花齐放的今天&#xff0c;对API使用者身份角色验…

匈牙利命名法为何被淘汰_为何甲烷的习惯命名法用甲烷而不是一烷?

其实在有机化合物中文翻译早期&#xff0c;是有过用数字命名的阶段的&#xff0c;先上图。部分有机化合物在不同时期的汉译名对照那么后来为何未采用数字&#xff0c;而使用天干。与商务印书馆和郑贞文个人其实有很大关系。那么有机物中文命名的演进是怎样的呢&#xff1f;下面…