POJ3258 River Hopscotch(二分)
题目链接:https://vjudge.net/problem/POJ-3258
题意:
有一条河长为L,河中间有n块石头,算上开始和结尾一共n+2个,现在问去掉m块石头,问最短距离中的最大值是多少?
分析:
二分寻找一个值,使得可以移除m个石头。
code:
// #include <bits/stdc++.h>
#include <cstdio>
#include <cmath>
#include <algorithm>using namespace std;
const int MAXN = 5e4 + 7;
const int INF = 0X3F3F3F3F; int a[MAXN]; // 存石头的位置int main()
{int l, n, m;while(scanf("%d %d %d", &l, &n, &m) != EOF){int low = l; // 二分左右边界int high = l;a[0] = 0;a[n+1] = l;for(int i=1; i<=n; i++){scanf("%d", &a[i]);low = min(low, a[i] - a[i-1]); // 更新左边界,找到起始的最小左边界}low = min(low, a[n+1] - a[n]);sort(a, a+n+2); // 输入无序,排为升序while(low <= high){int mid = (low+high) / 2;int sum = 0;int cnt = 0;int i = 1;while(i <= n+1) // 从第一个点遍历到最后一个点,终点{sum += a[i] - a[i-1]; // 两块石头之间的距离,不一定是连续的if(sum <= mid){cnt ++;i++;}else{sum = 0;i++;}}// cnt == m, 说明当前mid的值已经可以移除m个石头// 但是当前mid还不是可能最小值,有可能mid+1也符合条件// 我们找的是最小值中的最大值,而不是最小值中的最小值,所以左边界应该+1if(cnt <= m) low = mid + 1;elsehigh = mid - 1;}printf("%d\n", low);}return 0;
}
POJ3258 River Hopscotch(二分)相关推荐
- poj-3258 River Hopscotch (二分)
题意:奶牛过河游戏,河上有N块石头,河的总宽度为L,一位农夫感觉每个石头之间的间距太小了,所以他想通过移除M块石头来使最小的间距最大化.求最大化后的最小距离(姑且是这个题意吧,英语菜) 思路:通过二分 ...
- 【POJ3258】River Hopscotch 二分答案,贪心check
题意:第一行knm,有n+2个石头在数轴上(k是第n+2个石头离第一个的距离),要删掉m个,使两两间距的最小值最大,并求这个值. 题解:排序一下,然后扫一遍贪心决定删哪些. #include < ...
- poj 3258 River Hopscotch 二分答案
题目地址: http://poj.org/problem?id=3258 题目思路: 首先,如果只减少一部,那么一定要干掉最短的那段距离(一旦不消灭,最小的还是它,并没有达到使最小值取最大的理想情况) ...
- poj 3258 River Hopscotch 二分
1 /** 2 大意:给定n个点,删除其中的m个点,其中两点之间距离最小的最大值 3 思路: 二分最小值的最大值---〉t,若有距离小于t,则可以将前面的节点删除:若节点大于t,则继续往下查看 4 若 ...
- poj3258 River Hopscotch (二分搜索,考虑最大值最小问题)
每年奶牛们都要举办各种特殊版本的跳房子比赛,包括在河里从一块岩石跳到另一块岩石.这项激动人心的活动在一条长长的笔直河道中进行,在起点和距离起点 L 远的终点各有一块岩石 (1 ≤ L ≤ 10^9). ...
- POJ 3258 River Hopscotch 二分
题意:奶牛们喜欢在河里的石头上玩跳房子游戏,每次从一个石头跳到另一个石头上.现在知道起点的石头,终点的石头,以及终点石头到起点石头的距离L.又知道起点-终点之间还有N个石头,每个石头到起点的距离记为r ...
- bzoj 1650: [Usaco2006 Dec]River Hopscotch 跳石子(二分)
1650: [Usaco2006 Dec]River Hopscotch 跳石子 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 721 Solved: ...
- River Hopscotch问题(二分)
又是一个卡了我好久好久好久的二分题 我真的不会二分啊,有没有大佬可以给我讲讲 我就是个憨憨 题目链接River Hopscotch 题目描述: Every year the cows hold an ...
- POJ 3258 River Hopscotch 经典二分
点击打开链接 River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6189 Accepted: ...
最新文章
- Extensible Messaging and Presence Protocol (XMPP): Core
- js中计算中文长度方法
- 淘淘商城 本地仓库配置和仓库jar包下载
- tp5 日期范围查询_VB实战应用 | 如何巧妙解决日期范围查询问题
- 基于xlua和mvvm的unity框架
- 奥林匹克数学竞赛教练员汇编,最牛奥数资料全集!
- 文件的读操作 c# 1614526130
- 13.SpringMVC核心技术-异常处理
- keil软件仿真时,程序不能正常运行解决方法
- C++ string 用法详解(转)
- THE PRESENT (礼物)
- 为什么负数的补码是取反加一
- C 语言 结构类型 结构
- windows服务器系统和专业版差别,Win10专业版和企业版哪个好?教你区分win10企业版和专业版...
- 2021年十佳返利优惠券平台排名如下
- RAID磁盘阵列与配置
- 电子书格式转换方法集锦
- “中国无人车第一案”出现神转折:景驰为何“投诚”百度?
- 阿里云购买云服务器流程及注意事项(新手用户必看图文教程)
- [经验分享] 覃超线上直播课 如何快速搞定秋招算法面试