P1316 丢瓶盖(二分+贪心)
思路:都在注解里
#include<iostream>
#include<algorithm>
using namespace std; const int maxn = 1e5 + ;
int a[maxn], n, m, ans, mid; bool check(int x){
int sum = , p = ;
for (int i = ; i <= n;++i)
if (a[i] - a[p] >= x){ sum++; p = i; }
return sum>=m;
//存在大于等于最短距离x有sum,并且sum>=x,当然在实际中有可能不能分到x段,但是一定存在比x小的段落。
//那怎么保证最后的答案一定存在?
//我们已知一定存在最短距离的最大值,也就是说当大于这个值时,一定使检验函数不成立,所以,在实际划分时一定能分到。但是,注意在其他值时不一定可以分到,包括在最小值时,也能分到。
} void half(){
int l = , r = a[n];
while (l <= r){
mid = (l + r) >> ;
if (check(mid)){ l = mid + ; }
else r = mid - ;
}
ans = r;
} int main(){
cin >> n >> m;
for (int i = ; i <= n; ++i)
cin >> a[i];
sort(a + , a + + n);
half();
cout << ans << endl;
}
P1316 丢瓶盖(二分+贪心)的更多相关文章
- P1182 数列分段`Section II` P1316 丢瓶盖 二分答案
题目描述 对于给定的一个长度为N的正整数数列A-iA−i,现要将其分成M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一数列4 2 4 5 142451要分成 ...
- luogu P1316 丢瓶盖 |二分答案
题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入格式 ...
- 洛谷 P1316 丢瓶盖
P1316 丢瓶盖 题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以 ...
- 【洛谷】【二分答案+贪心】P1316 丢瓶盖
[题目描述:] 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? [ ...
- 洛谷P1316 丢瓶盖【二分】【贪心】
题目:https://www.luogu.org/problemnew/show/P1316 题意: 给定a个点的坐标(在一条直线上),现在要选b个点,问这b个点的最近距离的最大值是多少. 思路: 感 ...
- P1316 丢瓶盖--(二分答案)
题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入输出 ...
- 洛谷 P1316 丢瓶盖【二分答案】
题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入输出 ...
- 洛谷P1316 丢瓶盖【二分+递推】
陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入输出格式 输入 ...
- P1316 丢瓶盖
题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入输出 ...
随机推荐
- JS经典题目解析
此次列举出一些觉得有意思的JS题目(来源于出了名的44题),相信有非常多关于这些题目的博客,写这篇博客的目的在于巩固一些知识点,希望能和读者共同进步. 1. map函数执行过程 ["1&qu ...
- idea输入法不跟随解决办法
最近使用idea开发项目,遇到输入法不跟随的问题,自己动手解决了下 idea输入法不跟随解决办法: 1):系统:windows10 版本:idea2017.2 解决办法:使用QQ输入法 2):系统:w ...
- cf438E. The Child and Binary Tree(生成函数 多项式开根 多项式求逆)
题意 链接 Sol 生成函数博大精深Orz 我们设\(f(i)\)表示权值为\(i\)的二叉树数量,转移的时候可以枚举一下根节点 \(f(n) = \sum_{w \in C_1 \dots C_n} ...
- Neutron中插件与代理的总结
1.总结:
- Implemented Energy-Conserving Hair Scattering Model from Weta Digital
I used to implement the Energy-Conserving Hair Scattering Model as the pre-calculation program, so t ...
- 「Android」GreenDao
译文 版本:greenDAO 3.2.2 官网:http://greenrobot.org/greendao/ GitHub:https://github.com/greenrobot/greenDA ...
- C#:关于C#4中IEnumerable<out T>的理解
IEnumerable<out T>这个接口非常常见,它是最基础的泛型集合接口,表示可迭代的项的序列. 但是奇怪的是为什么泛型参数要带一个“out”? 经过一番资料查阅后,发现此“out” ...
- android adb 流程原理代码分析(一)
由于要用到adb的知识,但是对adb啥也不了解,看了下android的代码,adb的源码在system/core/adb下面,然后网上搜下了资料,发现很多大神的源码分析,瞬间信心爆棚,把大神写的博客都 ...
- mysql服务自启【Linux】
1.复制启动脚本到资源目录 2.增加mysqld服务控制脚本执行权限 3.mysql服务添加到系统服务 4.检测mysqld服务是否生效 表明服务已经启动,以后可以使用service命令启动mysql ...
- Linux 无线网卡配置
无线网卡常见的配置选项 某TL-WR842N路由器无线配置选项含义: 无线名称 路由器的无线(Wi-Fi)名称.无线密码 无线加密使用WPA2-PSK/WPA-PSK加密方式.AES加密算法,无线密码 ...