第一道二分答案。。。今天看了大牛的博客,突然发现有个叫“二分枚举答案”的方法好像很牛,于是便搜了些资料。。发现并不是很难,可能是我了解的只是冰山一脚罢了。。。加油ACMer!!!!

#include<stdio.h>

#include<string.h>
#include<algorithm>

using namespace std;

#define max 500000
int d[max],ans;
int L,n,m;

bool OK(int stp){         //判断stp是否为可行解
    int cur=0,curi=0,cnt=0;
    while(cur<L){
        int i,j;
        for(i=curi+1;i<=n;i++){
            if(d[i]<=stp+cur){
                j=i;
            }
            else{
                break;
            }
        }
        if(i==curi+1){
            return false;
        }
        curi=j;
        cur=d[curi];
        cnt++;
    }
    if(cnt>m){
        return false;
    }
    return true;
}

void solve(int s,int e){  //二分求解
    int mid;
    while(s<=e){
        mid=(s+e)>>1;
        if(OK(mid)){
            if(ans>mid){  //如果mid是可行解,则与答案比较
                ans=mid;
            }
            e=mid-1;
        }
        else{
            s=mid+1;
        }
    }
}

int main(){
  while(~scanf("%d%d%d",&L,&n,&m)){
    for(int i=1;i<=n;i++){
        scanf("%d",&d[i]);
    }
    d[n+1]=L; //最后一块石头为东岸
    n++;
    sort(d+1,d+n+1);
    ans=L;
    solve(d[1],L);
    printf("%d\n",ans);
  }
}

最新文章

  1. Javascript面向对象编程:构造函数的继承
  2. linux 程序运行监控
  3. Openjudge-计算概论(A)-年龄与疾病
  4. c# mvc如何生成excel
  5. Java语言
  6. pytorch之张量的理解
  7. MySQL 大表优化方案(长文)
  8. 2D过渡模块的其他属性
  9. Spring Boot 集成 Swagger2 与配置 OAuth2.0 授权
  10. HashMap底层实现原理(JDK1.8)源码分析
  11. SQL Server Profiler 怎么创建trace来收集sql log(.trc文件)
  12. 2018面向对象程序设计(Java)第1周学习指导及要求
  13. python的错误类型和异常处理
  14. 移动端HTML5实现文件上传
  15. Linux 用户篇——用户管理命令之id、whoami、su、chage
  16. spring切面拦截实现
  17. java中prepareStatement与createStatement的区别
  18. aliyun服务器ubuntu系统+MySQL+SqlDeveloper
  19. 【BZOJ 2118】 2118: 墨墨的等式 (最短路)
  20. django 之 常用命令

热门文章

  1. iserver中的服务数据迁移
  2. 实验室系统tomcat 6 java.lang.OutOfMemoryError: Java heap space
  3. error LNK1104: 无法打开文件“C:\Users\Administrator\Desktop\....\\xxxx.exe”
  4. joda 获取每个月第一天第一秒和最后一天最后一秒
  5. Python3简介
  6. &lt;爬虫&gt;黑板爬虫闯关02
  7. POJ 3348 /// 凸包+多边形面积
  8. Lost&#39;s revenge HDU - 3341 AC自动机+DP(需要学会如何优雅的压缩状态)
  9. scrapy运行的整个流程
  10. CSRF spring mvc 跨站请求伪造防御(转)