http://poj.org/problem?id=3258

题意:有一条很长很直的河距离为L,里边有n块石头,不包括起点和终点的那两块石头,奶牛们会从一个石头跳到另外一个,但因为有的石头隔得太近了,所以需要删除m块石头,来增大石头之间的最小距离。求删掉m块石头之后的其中两块石头的最小距离 。

思路 :这个题的和3273思路代码都很像,不过这个可能难理解一点,也是二分的思路。

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std ;
int main()
{int l,n,m ;while(scanf("%d %d %d",&l,&n,&m)!=EOF){int ch[60000] ;for(int i = 1 ; i <= n ; i++)scanf("%d",&ch[i]) ;ch[0] = 0 ;ch[n+1] = l ;sort(ch,ch+(n+2)) ;int le = 0,ri = l ;//下界是一次跳跃的最短距离,上界是一次跳跃的最长距离for(int i = 1 ; i <= n+1 ; i++)le = min(ch[i]-ch[i-1],le) ;int mid ;while(le <= ri){mid = (le+ri)/2 ;int cnt = 0 ,sum = 0;for(int i = 1 ; i < n+1 ; i++)//这里的i值到n还是n+1,最后的结果截然不同,因为去掉石头是两块石头中右边的那块
            {sum += (ch[i]-ch[i-1]) ;if(sum < mid)//如果前边的加起来比中间值还小,说明可以去掉一块石头cnt++ ;elsesum = 0 ;}if(cnt <= m)//即使等于m了也不一定是最优解le = mid+1 ;elseri = mid-1 ;}printf("%d\n",ri) ;}return 0 ;
}

View Code

转载于:https://www.cnblogs.com/luyingfeng/p/3409377.html

POJ3258River Hopscotch(二分)相关推荐

  1. POJ3258River Hopscotch题解

    POJ3258River Hopscotch题解 题目 链接 字面描述 思路 重点 代码实现 题目 链接 http://poj.org/problem?id=3258 字面描述 River Hopsc ...

  2. poj 3258 River Hopscotch 二分答案

    题目地址: http://poj.org/problem?id=3258 题目思路: 首先,如果只减少一部,那么一定要干掉最短的那段距离(一旦不消灭,最小的还是它,并没有达到使最小值取最大的理想情况) ...

  3. poj 3258 River Hopscotch 二分

    1 /** 2 大意:给定n个点,删除其中的m个点,其中两点之间距离最小的最大值 3 思路: 二分最小值的最大值---〉t,若有距离小于t,则可以将前面的节点删除:若节点大于t,则继续往下查看 4 若 ...

  4. POJ3258-River Hopscotch

    全解题报告索引目录 -> [北大ACM – POJ试题分类] 转载请注明出处:http://exp-blog.com -------------------------------------- ...

  5. 【二分法】POJ3258-River Hopscotch

    [抱大腿]啊啊啊又是一道恶心的题目!!!这道题是出在二分法里面的,因为这跟前面的一道青蛙过河的题特别像但是不一样,按照青蛙过河那个思路来走根本行不通,正好要按照跟那个思路相反的想法来想才行~ [题目] ...

  6. POJ 3258 River Hopscotch 二分

    题意:奶牛们喜欢在河里的石头上玩跳房子游戏,每次从一个石头跳到另一个石头上.现在知道起点的石头,终点的石头,以及终点石头到起点石头的距离L.又知道起点-终点之间还有N个石头,每个石头到起点的距离记为r ...

  7. 【POJ3258】River Hopscotch 二分答案,贪心check

    题意:第一行knm,有n+2个石头在数轴上(k是第n+2个石头离第一个的距离),要删掉m个,使两两间距的最小值最大,并求这个值. 题解:排序一下,然后扫一遍贪心决定删哪些. #include < ...

  8. 备战ccpc分站赛:秦皇岛和威海站(数论模块和dp模块)

    挑战程序设计竞赛(第2版)练习题 tips:难度(个人主观判断): 简单* 简单但卡思维 ** 中 *** 中稍加思考 **** 难 ***** 1 . 记录结果再利用的"动态规划" ...

  9. POJ 3258 -- River Hopscotch(二分)

    题目链接 Description Every year the cows hold an event featuring a peculiar version of hopscotch that in ...

  10. 二分+最大化最小值 River Hopscotch POJ - 3258

    题意: 起始有两个石头,位置是000和nnn,在这中间有n个石头,问如何拿走m块石头后,使得他们之间的最小间隔的最大值. 题目: Every year the cows hold an event f ...

最新文章

  1. 人工干预如何提高模型性能?看这文就够了!
  2. IT从业人员必看的10个论坛
  3. 如何用消息系统避免分布式事务?
  4. VirtualBox虚拟机导出导入实践
  5. 面试题之在字符串中查找出第一个只出现一次的字符的位置
  6. UBOOT 2011-3版本分析(初步感受)
  7. win32异常处理函数
  8. android组件通讯 Intent-Action属性
  9. Oracle 11g Dataguard参数详解
  10. bzoj3130 [SDOI2013]费用流 结论+二分答案+网络流检验
  11. 计算机网络 第六章 应用层
  12. python 不显示图片 直接保存图片 matplotlib 后端执行指令
  13. 如何在 Mac 上自定 Safari 浏览器窗口?
  14. 基于(7,4 ) 线性分组码编码和 BPSK 调制
  15. 京东、阿里:健康版图再博弈
  16. 笔记本和linux台式共享网络,怎么把笔记本的网络共享给台式电脑
  17. mysql表前缀_关于数据库表前缀的认识
  18. JAVA第二次作业《胖瘦程度计算》
  19. BLE连接中的中心设备与外围设备
  20. 最常见的运放LM358简要功能介绍(抄原理图)

热门文章

  1. Android应用开发以及设计思想深度剖析(3)
  2. IoC容器4——依赖
  3. jquery html dom方式创建新html元素
  4. html list列表
  5. 使用MyEclipse的自动提醒功能卡死MyEclipse的激活
  6. 04_使用域名访问后台管理系统(Nginx)
  7. java 多个引用指向同一个对象(含案例图解)
  8. php打印日期,php打印日期
  9. [数据结构] 三十二叉堆
  10. cat的实用技巧 cat>>/etc/profile<<EOF