Aggressive cows 基础二分
Aggressive cows
思路:根据题目描述,我们需要求解ans的最大值,可以使用二分求解,范围为0-max.
每次都尝试一下ans,如果尝试成功,说明右边区间[M+1, R]可能还有更大的解,如果尝试失败,就在区间[L, M+1]中继续尝试。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <limits.h>
using namespace std;typedef long long LL;static vector<LL> V;static LL N, C;bool check(LL x) //判断x是否可行
{LL cc = 1;LL pre = V[0];for (size_t i = 0; i < V.size(); i++) {if(V[i] - pre >= x){cc++;pre = V[i];}}return cc >= C; //如果最大间距为x时,最多可以存放下的数量cc大于等于C说明可行。
}void work()
{LL L = 1;LL R = 1000000000/C; // 必须为这个,刚开始L=0, R = N+1,错了3次LL ans = 1;while (L <= R) {LL M = L + (R-L) / 2;if(check(M)){ans = M;L = M + 1;}else {R = M - 1;}}cout << ans << endl;
}int main()
{freopen("E:\\Desktop\\data.txt", "r", stdin);cin >> N >> C;for (LL i = 0; i < N; i++) {LL x;cin >> x;V.push_back(x);}sort(V.begin(), V.end());work();return 0;
}
Aggressive cows 基础二分相关推荐
- poj 2456 Aggressive cows 【二分+最大化最小值】
题目链接:http://poj.org/problem?id=2456 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 210 ...
- poj2456 Aggressive cows(二分查找)
https://vjudge.net/problem/POJ-2456 二分,从最大长度开始,不断折半试,如果牛全放下了,就是可行,修改下界,否则改上届. 1 #include<iostream ...
- POJ 2456 Aggressive cows(二分答案)
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22674 Accepted: 10636 Des ...
- BZOJ 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛( 二分答案 )
最小最大...又是经典的二分答案做法.. -------------------------------------------------------------------------- #inc ...
- 二分入门——poj 2456 aggressive cows
这是一道二分的神奇贪心题,先上题目 Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11714 A ...
- Aggressive cows POJ - 2456
2456 -- Aggressive cows 题目大意:有c只牛,要把他们放在n个屋子里,每个屋子放一只牛,每个屋子都在一根数轴上,给出他们的坐标,要让每个屋子间的最小距离尽可能的大,问这个最大距离 ...
- 二分搜索 POJ 2456 Aggressive cows
题目传送门 1 /* 2 二分搜索:搜索安排最近牛的距离不小于d 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #incl ...
- 从两道基础二分算法题谈check函数的写法
第一题:愤怒的牛 loj链接 两道题目都是基础二分的模板题,先看第一题,题意为总共有nnn间牛舍,mmm头牛,要将mmm头牛安排在nnn间牛舍,为防止牛互相攻击,使两头牛之间的最小距离最大!最大! 最 ...
- Aggressive cows POJ2456
Aggressive cows(愤怒的牛)(分治) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40455 Accepted: ...
- POJ 2456 - Aggressive cows(二分)
Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stal ...
最新文章
- CSP认证201709-1	打酱油[C++题解]:贪心
- www.pythonchanlleges.com
- Hit or Miss
- pwn入门-PLT表与GOT表、libc入门
- 转载:SendMessage()这个函数有很多奇妙的用途
- 多个openstack合并成一个openstack的多个region
- URL2Video:把网页自动创建为短视频
- 于数据交换格式XML和JSON的比较
- c语言固定长度的字符串,【分享】C语言动态长度字符串
- jzoj1161-机器人M号【欧拉函数,dp】
- 关于Python的一些学习笔记(小白式笔记,持续更新)
- DataList多行数据后如何添加一条分隔线
- 三极管工作原理_三极管的基本工作原理,这个讲的很全
- 启航~算法刷题第一天
- 公钥、私钥、数字证书的概念 (讲得很明吧,通俗易懂)
- css实现在一行显示多余部分显示省略号
- php arcsin,三角函数在线计算器
- python模糊层次分析法案例_python实现AHP算法的方法实例(层次分析法)
- mastercam9.1按alt键卡机,mastercam输入参数卡机需要win10输入法兼容性设置
- git commit最佳实践:conventional commits