#148. 【NOIP2015】跳石头 (二分答案,最大化最小值)
2015-11-21 16:45
507 查看
题目链接
题意:略
解法:和上一道poj2456一样, 这里是删除m个点,等价于选择n-m
个点,剩下的与poj2456处理一样,经典题目
题意:略
解法:和上一道poj2456一样, 这里是删除m个点,等价于选择n-m
个点,剩下的与poj2456处理一样,经典题目
#include<cstdio> #include<algorithm> //#include<bits/stdc++.h> using namespace std; #define LL long long #define pb push_back #define X first #define Y second #define cl(a,b) memset(a,b,sizeof(a)) typedef pair<long long ,long long > P; const int maxn=500005; const LL inf=1LL<<45; const LL mod=1e9+7; LL a[maxn]; int n,m; LL L; bool ok(int d){ int last=0; for(int i=1;i<n+2-m;i++){ int cur=last+1; while(cur<=n+1&&a[last]+d>=a[cur])cur++; if(cur>n+1)return false; last=cur; } return true; } void solve(){ int l=0,r=999999999; while(r-l>1){ int mid=(l+r)/2; if(ok(mid))l=mid; else r=mid; } printf("%d\n",r); } int main(){ while(~scanf("%lld%d%d",&L,&n,&m)){ for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } a[0]=0;a[n+1]=L; solve(); } return 0; }
相关文章推荐
- servlet Filter Listener总结
- 飞思卡尔IMX6处理器的GPIO配置方式
- 转:关于Android机型适配这件小事儿
- Linux命令备忘录
- 字节数据转换成十六进制字符串
- java 日期格式化帮助类
- 1248: HH的军训[容斥定理]
- android Launcher4 给第三方应用图标添加底图
- symfony安装使用
- LeanCloud学习笔记(1)
- Codeforces 448C Painting Fence
- 地理围栏
- Android res/raw文件以及raw与res/assets异同
- 使用内部的方法来实现HTTP请求
- Linux文件与目录的命令
- Activity布局初步【一】
- 估计概率构造短语翻译表
- 事务实现原理-回滚原理
- 在发布正式版本前移除日志语句
- Linux常用参数