`
hellojyj
  • 浏览: 63578 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

POJ 3258 River Hopscotch

    博客分类:
  • ACM
阅读更多

原题传送门:http://poj.org/problem?id=3258

 

 

River Hopscotch
Time Limit: 2000MS   Memory Limit: 65536K
Total Submissions: 6656   Accepted: 2880

Description

Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a long, straight river with a rock at the start and another rock at the end, L units away from the start (1 ≤ L ≤ 1,000,000,000). Along the river between the starting and ending rocks, N (0 ≤ N ≤ 50,000) more rocks appear, each at an integral distance Di from the start (0 < Di < L).

To play the game, each cow in turn starts at the starting rock and tries to reach the finish at the ending rock, jumping only from rock to rock. Of course, less agile cows never make it to the final rock, ending up instead in the river.

Farmer John is proud of his cows and watches this event each year. But as time goes by, he tires of watching the timid cows of the other farmers limp across the short distances between rocks placed too closely together. He plans to remove several rocks in order to increase the shortest distance a cow will have to jump to reach the end. He knows he cannot remove the starting and ending rocks, but he calculates that he has enough resources to remove up to M rocks (0 ≤ MN).

FJ wants to know exactly how much he can increase the shortest distance *before* he starts removing the rocks. Help Farmer John determine the greatest possible shortest distance a cow has to jump after removing the optimal set of M rocks.

Input

Line 1: Three space-separated integers: L, N, and M
Lines 2..N+1: Each line contains a single integer indicating how far some rock is away from the starting rock. No two rocks share the same position.

Output

Line 1: A single integer that is the maximum of the shortest distance a cow has to jump after removing M rocks

Sample Input

25 5 2
2
14
11
21
17

Sample Output

4

Hint

Before removing any rocks, the shortest jump was a jump of 2 from 0 (the start) to 2. After removing the rocks at 2 and 14, the shortest required jump is a jump of 4 (from 17 to 21 or from 21 to 25).

Source

 
分析:二分搜索题,每次二分得到mid值的时候去判断下能不能扔掉M块石头。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define MAXN 50010
#define t 20000000

int st[MAXN];
int flg[MAXN];
int flag[MAXN];
int l,n,m,mid;

bool isOK()
{
    int p,k;
    p = -1;
    for (int i=1;i<=n;i++)
    {
        while (st[i]-st[p+1]>=mid)
        {
            p++;
        }
        k=p<0?t:min(flg[p],flag[p]);
        flag[i] = k+i-p-1;
        flg[i] = min(flag[i-1],flg[i-1])+1;
    }
    if (flag[n]<=m)
    {
       return true;
    }else{
        return false;
    }


}

int main()
{
    scanf("%d%d%d",&l,&n,&m);
    for (int i=1;i<=n;i++){
        scanf("%d",st+i);
    }
    st[++n]=l;
    sort(st+1,st+n);
    int l=1,r=st[n];
    flg[0]=t; flag[0]=0;
    while (r>=l)
    {
        mid=l+r>>1;
        if (isOK())
        {
            l=mid+1;
        }
        else{
            r=mid-1;
        }
    }
    printf("%d\n",l-1);
    return 0;
}
 
分享到:
评论

相关推荐

    POJ3258-River Hopscotch

    【标题】"POJ3258-River Hopscotch"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目挑战参赛者的算法设计和实现能力,通常涉及计算机科学中的数据结构和算法知识。 【描述】...

    三菱FX系列PLC与昆仑通态触摸屏在磨床控制中的应用及优化

    内容概要:本文详细介绍了使用三菱FX系列PLC与昆仑通态/三菱GT系列触摸屏进行磨床控制的具体方法和技术细节。主要内容涵盖PLC的梯形图编程,包括脉冲输出控制、急停逻辑、伺服电机控制等;触摸屏的HMI界面设计,涉及砂轮磨损补偿、数值输入框的边界检查、动态效果实现等;以及PLC与触摸屏之间的通讯配置和调试技巧。文中还分享了许多实际操作中的经验和注意事项,如脉冲输出模式的设置、通讯参数的一致性、硬件连接的可靠性等。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其是对PLC编程和HMI设计有一定基础的人群。 使用场景及目标:适用于中小型加工车间的磨床控制系统的设计与调试。主要目标是提高磨床控制系统的稳定性和精度,减少调试时间和错误发生的可能性。 其他说明:文章不仅提供了具体的编程代码和配置步骤,还分享了许多实际操作中的经验和教训,帮助读者更好地理解和掌握相关技术和技巧。

    邢台市-沙河市--街道行政区划_130582_Shp-wgs84坐标系.rar

    街道级行政区划shp数据,wgs84坐标系,直接下载使用。

    邢台市-内丘县--街道行政区划_130523_Shp-wgs84坐标系.rar

    街道级行政区划shp数据,wgs84坐标系,直接下载使用。

    IEEE Standard for Verilog Hardware Description Language.pdf.wim

    IEEE Standard for Verilog Hardware Description Language.pdf.wim

    晋中市-和顺县-街道行政区划_140723_Shp数据-wgs84坐标系.rar

    晋中市-和顺县-街道行政区划_140723_Shp数据-wgs84坐标系.rar

    FPGA与CY7C68013A实现USB2.0多通道高精度数据采集系统的详细解析

    内容概要:本文深入探讨了基于FPGA(Xilinx Spartan-6)和CY7C68013A的多通道数据采集系统的设计与实现。系统能够支持八路或十六路24位ADC的同时采样,并通过USB2.0接口将数据稳定传输至上位机。文中详细介绍了硬件架构的选择、FPGA内部FIFO设计、USB固件配置以及上位机软件开发等多个方面的关键技术点。特别强调了跨时钟域FIFO设计、端点配置优化、多线程同步读取等技巧对于提高系统性能的重要作用。此外,还分享了许多实际开发过程中遇到的问题及其解决方案,如电磁兼容性处理、时钟漂移补偿、数据包丢失预防等。 适合人群:从事嵌入式系统开发、FPGA编程、USB通信协议研究的专业技术人员,尤其是那些正在探索高效数据采集方案的研发人员。 使用场景及目标:适用于需要进行多通道同步数据采集的应用场合,比如工业自动化检测设备、医疗仪器、环境监测等领域。目标是帮助开发者掌握构建高性能、可靠性的数据采集系统的完整流程和技术要点。 其他说明:作者不仅提供了详细的代码片段作为参考,还分享了很多宝贵的实践经验,有助于读者更好地理解和应用相关技术。

    电力现货价格建模中基于贝叶斯校正与跳变分量的MCMC算法Matlab/C++实现及其应用

    内容概要:本文探讨了利用贝叶斯校正和跳变分量在电力现货价格建模中的应用,特别是通过MCMC算法进行参数估计的方法。文中详细介绍了模型的基本架构,即均值回归过程与多组跳变过程的叠加,并展示了如何通过Matlab和C++-Mex实现这一复杂的模型。模型的核心在于通过数据驱动的方式确定最优跳变分量个数,从而更好地捕捉电力市场价格的尖峰特性。此外,还讨论了模型的实际应用效果以及不同市场之间的差异,强调了贝叶斯框架在极端事件预测方面的优势。 适合人群:从事电力市场研究、金融工程、数据分析的专业人士,尤其是对贝叶斯统计和MCMC算法有一定了解的研究人员和技术开发者。 使用场景及目标:适用于希望提高电力现货价格预测准确性的人群,尤其是在面对频繁波动的市场环境时。通过引入多个带符号的跳变分量,能够更精确地捕捉市场动态,帮助决策者制定更好的风险管理策略。 其他说明:文中提供了详细的代码实现和后验诊断方法,确保模型不仅理论上可行,而且在实践中也能高效运行。特别指出,在不同市场环境下,模型参数会有不同的表现形式,体现了模型的高度灵活性和适应性。

    上市公司环境排放明细(2008-2021年)

    上市公司环境排放明细(2008-2021年)

    信捷XC3 PLC与施耐德ATV12变频器自动化通讯方案及应用

    内容概要:本文详细介绍了信捷XC3 PLC与施耐德ATV12变频器之间的自动化通讯解决方案。主要内容涵盖硬件连接、PLC程序逻辑设计、触摸屏交互以及断电自恢复等功能。首先,硬件方面采用RS485接口进行连接,确保通信稳定。其次,PLC程序分为三个主要部分:上电自检、实时状态轮询和频率设定。通过Modbus协议实现设备间的数据交互,并解决了通讯冲突等问题。此外,触摸屏提供了友好的人机界面,支持频率设定和状态监控。最后,实现了断电自恢复功能,确保设备在意外断电后能够自动恢复正常运行。 适合人群:从事工业自动化领域的工程师和技术人员,特别是熟悉PLC编程和变频器应用的专业人士。 使用场景及目标:适用于需要提高生产设备自动化水平的企业,旨在减少人工干预,提升生产效率和设备可靠性。具体应用场景包括但不限于工厂生产线、自动化控制系统等。 其他说明:文中提供了详细的代码示例和调试技巧,帮助读者更好地理解和实施该方案。同时强调了硬件配置和参数设置的重要性,为实际项目提供宝贵的实践经验。

    120吨双级反渗透与混床系统的S7-200 Smart PLC自动化控制及加药程序详解

    内容概要:本文详细介绍了120吨双级反渗透与混床系统的自动化控制系统及其加药程序。系统采用西门子S7-200 Smart PLC进行控制,涵盖了一键制水、阻垢剂和杀菌剂的自动投加、反渗透膜保护、混床再生控制等功能。文中展示了具体的PLC编程逻辑,如定时器的应用、硬件互锁设计、模拟量处理以及HMI画面设计等。此外,还包括详细的电气图纸和操作维护手册,提供了丰富的实战经验和优化建议。 适合人群:具备一定PLC编程基础的自动化工程师和技术人员。 使用场景及目标:适用于工业水处理领域的自动化控制系统设计与实施,帮助工程师理解和掌握S7-200 Smart PLC的实际应用技巧,提高系统的可靠性和效率。 其他说明:文章不仅提供了完整的程序代码和注释,还分享了许多实战中的踩坑记录和优化建议,对于初学者来说是非常宝贵的学习资源。

    包头市-达尔罕茂明安联合旗-街道行政区划_150223_Shp数据-wgs84坐标系.rar

    包头市-达尔罕茂明安联合旗-街道行政区划_150223_Shp数据-wgs84坐标系.rar

    HCIA-Datacom高阶:vlan、vlanif、单臂路由、静态路由、ospf综合实验

    HCIA-Datacom高阶:vlan、vlanif、单臂路由、静态路由、ospf综合实验

    张家口市-桥东区--街道行政区划_130702_Shp-wgs84坐标系.rar

    街道级行政区划shp数据,wgs84坐标系,直接下载使用。

    LabVIEW测试系统在工业自动化领域的应用与优势解析

    内容概要:本文详细介绍了LabVIEW测试系统在工业自动化领域的应用及其优势。首先,通过具体案例展示了LabVIEW在24小时不间断测试PCBA模块中的高效性和稳定性,特别是在异常处理和数据存储方面的强大功能。其次,文章强调了LabVIEW在硬件交互、PID控制、版本管理和文档生成等方面的优势,如利用DAQmx驱动进行精确的压力控制,以及通过Project Library机制实现无缝版本升级。此外,文中还提到LabVIEW的图形化编程特性使得复杂工程需求能够快速落地,并且提供了丰富的信号处理函数库,适用于各种测试场景。最后,文章讨论了LabVIEW在商用系统中的部署能力和售后服务支持,如快速生成报表和稳定的远程监控功能。 适合人群:从事工业自动化、测试系统开发的工程师和技术人员。 使用场景及目标:① 实现高效的工业自动化测试系统;② 提高测试系统的稳定性和可靠性;③ 加速复杂工程需求的快速落地;④ 提供便捷的版本管理和文档生成工具。 其他说明:尽管LabVIEW的图形化编程对习惯文本编码的工程师有一定学习曲线,但对于大多数标准测试场景而言,其提供的稳定性和易用性使其成为理想的开发工具。

    光伏充电站动态能量调度策略:基于MATLAB的电动汽车充放电优化与光伏利用率提升

    内容概要:本文详细介绍了光伏充电站的能量调度策略及其MATLAB实现。主要内容包括:定义关键变量如光伏出力波动容忍阈值、电价系数等,建立准入控制机制将充电站分为‘饥饿’和‘饱和’两种模式,通过计算每辆车的充放电灵活度进行车辆调度,采用动态定价策略激励车主错峰充电,以及运用凸优化算法求解最优充电方案。最终实现了光伏利用率的显著提高和车主充电体验的优化。 适合人群:对新能源汽车充电站运营、光伏能源管理和智能调度算法感兴趣的工程师和技术人员。 使用场景及目标:适用于希望深入了解并应用光伏充电站能量调度策略的研究人员和从业者。主要目标是在确保车主按时充电的前提下,最大限度地利用光伏发电,减少能源浪费,同时通过动态定价机制平衡供需关系。 其他说明:文中提供了详细的代码片段和图表解释,帮助读者更好地理解和复现该调度策略。此外,还讨论了一些实际应用中的挑战和改进建议,如精确定位车辆停留时间和引入联邦学习更新灵活度模型等。

    基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip

    基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip,个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业。 基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue3实现的仿小米商城项目源代码+项目详细文档.zip基于Vue

    基于PMU的配电系统非线性状态估计MATLAB实现及应用

    内容概要:本文详细介绍了基于PMU(phasor measurement unit)的配电系统状态估计(SSE)中引入非线性模型的方法及其实际应用。传统的线性模型将接地电阻视为固定参数,无法适应实际环境中接地电阻的变化,导致估计精度下降。文中提出了一种改进的非线性状态估计方法,将接地电阻作为状态变量纳入模型,通过构建非线性观测方程和实时更新雅可比矩阵,利用牛顿-拉夫森法进行求解。这种方法显著提高了中性点电压(NEV)和其他关键参数的估计精度,在复杂环境如雷雨天气下的表现尤为突出。此外,文章还讨论了大规模系统测试中的优化技术和实际应用案例,展示了该方法的成功预警实例。 适合人群:电力系统研究人员、电气工程师、从事配电系统状态估计的研究者和技术开发者。 使用场景及目标:适用于需要精确估计配电系统状态的应用场合,尤其是在接地电阻波动较大或存在多接地节点的情况下。主要目标是提高状态估计的准确性,确保电力系统的稳定性和安全性。 其他说明:文中提供了详细的MATLAB代码实现,并附有测试案例和性能对比数据。代码已在GitHub上开源,支持进一步的研究和开发。

    基于改进粒子群算法的微网群优化调度及其Matlab实现

    内容概要:本文详细介绍了利用Matlab实现改进粒子群算法进行微网群优化调度的方法。针对传统粒子群算法易陷入局部最优的问题,引入混沌初始化策略和动态惯性权重调整,提高了算法的全局搜索能力和收敛速度。文中展示了具体的代码实现,包括混沌序列初始化、动态电价策略、储能系统充放电控制以及功率传输优化等方面的内容。通过多个测试场景验证,改进后的算法在处理光伏出力波动和负荷突变时表现出色,特别是在负载突变场景中,收敛速度提升了62%。此外,文章还讨论了动态电价对能源调度的影响,以及储能系统和燃料电池的优化策略,最终实现了显著的成本节约和效率提升。 适合人群:从事微网调度研究的技术人员、研究生及相关领域的研究人员。 使用场景及目标:适用于需要优化多微网协同工作的场景,旨在提高微网系统的运行效率,降低成本,增强应对复杂工况的能力。 其他说明:文中提供了详细的代码片段和实验数据,便于读者理解和复现实验结果。同时强调了算法参数调整的重要性,并指出未来的研究方向可以进一步考虑风光预测误差等因素。

    三菱FX3U与台达VFD-M变频器485通讯详解及实战案例

    内容概要:本文详细介绍了三菱FX3U PLC与台达VFD-M变频器通过RS485进行Modbus RTU通讯的方法。首先讲述了硬件连接的具体步骤,包括485BD板的安装和接线注意事项。接着深入解析了变频器的关键参数设置,确保通讯顺利进行。随后展示了PLC程序的核心逻辑,特别是RS指令的应用,以及如何通过Modbus功能码实现启停控制和频率设定。此外,还提供了触摸屏配置方法,使用户能够直观地监控和调整系统。最后分享了一些常见的调试技巧和避坑指南,帮助解决实际操作中可能遇到的问题。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要将三菱FX3U PLC与台达VFD-M变频器集成在一起工作的专业人士。 使用场景及目标:适用于希望掌握三菱FX3U与台达VFD-M变频器485通讯配置的技术人员,旨在提高他们在这方面的技能水平,减少项目实施过程中可能出现的问题。 其他说明:文中不仅提供了详细的理论解释,还有丰富的实战经验和具体的操作步骤,附带完整的程序和接线图供读者参考。

Global site tag (gtag.js) - Google Analytics