//简单两次二分,但是自己在处理边界的时候还是调试了不少时间,,多加练习代码能力才是王道啊 =.=

/* ID:1192432 PROG: castle LANG: C++ */ #include <iostream> #include <queue> #include <stack> #include <string> #include <map> #include <vector> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> using namespace std; const int MAX=50005,INF=1<<30; int l,n,m; int a[MAX],x,y; int bsearch(int v){ int left=0,right=n,mid; while(left<right){ mid=left+(right-left)/2; if(a[mid]>=v) right=mid; else left=mid+1; } return left; } bool solve(int v){//判断小于等于 int pos=0,t=0,cnt=0,ptr=0; while(t<l){ t+=v; pos=bsearch(t); //if(pos>=n) // return 0; if((pos>0&&a[pos-1]==v)|| pos>=n) --pos; cnt+=pos-ptr-1; ptr=pos; t=a[pos]; } //if(v==5) // cout<<"POSSS: "<<cnt<<endl; // if(t>l) // return 0; if(cnt<=m)//分配的最短距离小了或者正好 return 1; return 0; } int main() { #ifndef ONLINE_JUDGE freopen("i.txt", "r", stdin); #endif int mid; cin>>l>>n>>m; for(int i=0;i<n;i++) cin>>a[i]; a[n]=0; a[n+1]=l; n+=2; sort(a,a+n); x=0; y=a[n-1]+1; while(x<y){ mid=x+(y-x)/2; //cout<<x<<" "<<y<<endl; //cout<<"mid: "<<mid<<endl; //if(mid==13) // cout<<"U"<<endl; if(solve(mid)) x=mid+1; else y=mid; } cout<<x-1<<endl; return 0; }

Dichotomy poj River Hopscotch相关推荐

  1. 【POJ No. 3258】 跳房子游戏 River Hopscotch

    [POJ No. 3258] 跳房子游戏 River Hopscotch POJ题目地址 [题意] 跳房子游戏指从河中的一块石头跳到另一块石头,这发生在一条又长又直的河流中,从一块石头开始,到另一块石 ...

  2. POJ 3258 River Hopscotch 经典二分

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

  3. River Hopscotch

    题目链接:http://poj.org/problem?id=3258 River Hopscotch Time Limit: 2000MS   Memory Limit: 65536K Total ...

  4. bzoj 1650: [Usaco2006 Dec]River Hopscotch 跳石子(二分)

    1650: [Usaco2006 Dec]River Hopscotch 跳石子 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 721  Solved: ...

  5. River Hopscotch问题(二分)

    又是一个卡了我好久好久好久的二分题 我真的不会二分啊,有没有大佬可以给我讲讲 我就是个憨憨 题目链接River Hopscotch 题目描述: Every year the cows hold an ...

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

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

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

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

  8. poj 3258 River Hopscotch 【二分】

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

  9. poj 3258 River Hopscotch 二分答案

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

最新文章

  1. 【Android OpenGL ES】阅读hello-gl2代码(二)Java代码
  2. Pandas的DataFrame数据类型
  3. 支持多种小程序!阿里云ARMS推出小程序监控
  4. 浅谈网络协议(一) 为什么要学网络协议
  5. java openoffice 打印_java调用openoffice将office系列文档转换为PDF的示例方法
  6. 浏览器显示XML文档
  7. JSBridge的思考
  8. html点击区域,求助HTML+CSS可以点击区域外关闭实现。
  9. 什么是 MultiRaft ?
  10. Java实现将文件或者文件夹压缩成zip
  11. java poi 操作ppt
  12. 关于#include头文件问题
  13. MFC开发IM-第七篇、mfc设置默认编辑框内容
  14. SQL Server中的身份功能教程
  15. VisualAssistX中文注释提示错误 解决办法
  16. 以产品思维去做微信公众号
  17. 数字信号处理实验matlab版答案刘舒帆,数字信号处理实验指导书(MATLAB版) 随书代码...
  18. 程序猿必备的数电知识,快来看看你掌握多少!(建议收藏)
  19. android开发实现微博正文效果、顶部悬浮、ScrollView嵌套ListView
  20. Vue + Spring Boot 项目实战(十三):使用 Shiro 实现用户信息加密与登录认证

热门文章

  1. 如何实现电脑远程开机
  2. VScode 淡绿色界面
  3. 教师节我用Python做了个学生点名系统送给老师当礼物,这回毕业稳了
  4. 查找共家庭组计算机,家庭组多台电脑共享方法
  5. Caused by: java.lang.IllegalStateException: Failed to introspect Class
  6. 岳阳的第一场雪,我这辈子的第一场雪。
  7. perl6中的q/qq/qx/qqx
  8. hexo(sakura)给博客增添侧边栏(回到顶部,跳转评论,深色模式,播放音乐)Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
  9. 【网络安全】IP地址、子网掩码、网关、DNS、DHCP概述(自学,随时补充)
  10. 【聆听】泰戈尔诗集(二)