题目地址:POJ 3258

水题。二分距离,判断是否可行。需要注意的是最后一个,因为最后一个是没法移除的,所以还要倒着判断一下。

代码如下:

#include <iostream>
#include <string.h>
#include <math.h>
#include <queue>
#include <algorithm>
#include <stdlib.h>
#include <map>
#include <set>
#include <stdio.h>
using namespace std;
#define LL __int64
#define pi acos(-1.0)
const int mod=9901;
const int INF=0x3f3f3f3f;
const double eqs=1e-8;
int a[51000], vis[51000];
int bin_search(int n, int m)
{int low=0, high=1e9, mid, ans, cnt, last;while(low<=high) {mid=low+high>>1;int flag=0;cnt=0;last=0;memset(vis,0,sizeof(vis));for(int i=0; i<n; i++) {if(a[i]-last<mid) {cnt++;if(cnt>m)break;} else {last=a[i];vis[i]=1;}}for(int i=n-1;i>=0;i--){if(vis[i]){if(a[n]-vis[i]<mid){cnt++;if(cnt>m) break;}else break;}}if(cnt>m) high=mid-1;else{ans=mid;low=mid+1;}}return ans;
}
int main()
{int lenth, i, n, m, ans;scanf("%d%d%d",&lenth,&n,&m);for(i=0; i<n; i++) {scanf("%d",&a[i]);}if(!n) {printf("%d\n",lenth);return 0;}sort(a,a+n);a[n]=lenth;ans=bin_search(n,m);printf("%d\n",ans);return 0;
}

POJ 3258 River Hopscotch (二分)相关推荐

  1. poj 3258 River Hopscotch 二分答案

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

  2. poj 3258 River Hopscotch 二分

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

  3. POJ 3258 River Hopscotch 二分

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

  4. POJ 3258 River Hopscotch 经典二分

    点击打开链接 River Hopscotch Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6189   Accepted: ...

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

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

  6. poj 3258 River Hopscotch 【二分】

    题目真是不好读,大意例如以下(知道题意就非常好解了) 大致题意: 一条河长度为 L,河的起点(Start)和终点(End)分别有2块石头,S到E的距离就是L. 河中有n块石头,每块石头到S都有唯一的距 ...

  7. POJ 3258 River Hopscotch(二分查找答案)

    一个不错的二分,注释在代码里 #include <stdio.h> #include <cstring> #include <algorithm> #include ...

  8. poj 3258:River Hopscotch(二分)

    题目链接 L为N+2块石子中最右边石子位置,0最左,M为可移除块数,求移除后相邻石子可达到的最大距离. #include<iostream> #include<cstdio> ...

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

    题目链接:点击查看 题目大意:给出n个石头,其位置排列在一个数轴上,起点为0,终点为ed(题目会给出),我们设两两石头之间的间距的最小值为ans,问在移走m块石头之后,ans的最大值是多少 题目分析: ...

最新文章

  1. android PhotoView的用法
  2. 4月机器学习热文出炉,这10篇文章你读了吗?
  3. ARM与RISC-V之争,后起之秀的优势在哪儿?
  4. 20 ubuntu 中科大源_Linux-Ubuntu简单配置-换国内源-中文显示
  5. 软件重构过程中的思维转换: 遗留代码如何变废为宝
  6. 力扣 136. 只出现一次的数字 【异或运算】
  7. java编程语言大全_JAVA编程语言的基础知识(一)
  8. python超神之路:创建对象的9种方法
  9. java 悬浮提示框_表格(悬浮框提示)
  10. 信息学奥赛一本通(1025:保留12位小数的浮点数)
  11. JS与Jquery的事件委托机制
  12. 纯CSS实现鼠标滑过缩略图放大显示代码
  13. [导入]agtweener.zip(673.46 KB)
  14. 数值线性代数徐树方pdf_MIT线性代数4-8:矩阵分解,向量空间,列空间和零空间,线性方程组求解...
  15. like语法 mysql_mysql中like语法拼接4种方式
  16. (转)TeamViewer三种许可证的区别是什么?
  17. SQLSERVER不借助代理:本地备份、异地备份
  18. 浏览器去除烦人的黑白滤镜
  19. IPCamera WiFi配置方案
  20. 怎么从主机拷贝文件到虚拟机

热门文章

  1. 2021CVPR 弱/暗光《Seeing in Extra Darkness Using a Deep-Red Flash》
  2. Linux 主机名被修改成bogon问题的几种解决办法
  3. patelinux是什么
  4. 推荐一种快速提高英语口语的方法
  5. 率土之滨九游不显示服务器,率土之滨九游版
  6. 数据建模分层_bigartm库进行分层主题建模
  7. 等值连接mysql_MySQL的左连接、右连接、等值连接
  8. 华为服务器 联想服务器 稳定性,西安华为服务器
  9. 手机定位技术相关flp
  10. 快速多人游戏(4) - 爆头!(AKA延迟补偿)