Aggressive cows题解
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
int n,c;
ll stall[100100];
bool check(ll k){int i;ll num=1,t=stall[1];for(i=2;i<=n;i++)(不停地尝试,只要能放下这么多头牛,则返回True)if(stall[i]-t>=k){(当前的与前一个进行比较)num++;t=stall[i];if(num==c)return 1;}return 0;
}
int main(){scanf("%d%d",&n,&c);ll i,left=0,right=0,mid;for(i=1;i<=n;i++)scanf("%lld",&stall[i]);sort(stall+1,stall+n+1);(先排好序,这样的话后面就好比较距离)left=1,right=stall[n]-stall[1];(这里不能直接stall[n]/c,如果均分,当c=2时就会有问题)while(left<right){mid=(left+right)/2;if(check(mid))left=mid+1;(如果满足条件(包括mid),则收紧条件)else right=mid;}if(check(left))printf("%lld",left);(有可能mid满足了条件left+1退出了,所以要特判一下)else if(check(left-1))printf("%lld",left-1);
}
总结:只要理解了最大的最小距离就可以搞定(主要是理解花时间)
Aggressive cows题解相关推荐
- 二分搜索 POJ 2456 Aggressive cows
题目传送门 1 /* 2 二分搜索:搜索安排最近牛的距离不小于d 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #incl ...
- 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 POJ2456
Aggressive cows(愤怒的牛)(分治) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40455 Accepted: ...
- Aggressive cows POJ - 2456
2456 -- Aggressive cows 题目大意:有c只牛,要把他们放在n个屋子里,每个屋子放一只牛,每个屋子都在一根数轴上,给出他们的坐标,要让每个屋子间的最小距离尽可能的大,问这个最大距离 ...
- Aggressive cows POJ - 2456 题解
题目链接 点击这里 代码 #include <iostream> #include <algorithm>using namespace std;int N, M; const ...
- POJ 2456 - Aggressive cows(二分)
Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stal ...
- Aggressive cows(c语言)
题目描述 Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are ...
- poj 2456 Aggressive cows 【二分+最大化最小值】
题目链接:http://poj.org/problem?id=2456 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 210 ...
最新文章
- QIIME 2用户文档. 14数据评估和质控Evaluating and controlling(2019.7)
- 路由器 jffs分区 简介
- Get Start from today
- Visual Studio 2013开发 mini-filter driver step by step 内核代码段分页alloc_text的使用(9)
- BeanUtils的学习
- 前端学习(2775):方式2进行路由跳转
- 文件类的操作 File c# 1614823687
- python爬取豆瓣影评生成词云的课程设计报告_简单爬取《小丑》电影豆瓣短评生成词云...
- Android开发笔记(一百零四)消息推送SDK
- oracle 方案概念
- [刷机教程] android系列 adb操作命令详解,常用adb操作命令详解
- 周爱民:架构的实战过程
- 删软件怎么用计算机管理员删除,win10卸载软件需要管理员权限,卸载软件没有管理员权限...
- Day02| 第四期-阿里巴巴股票行情分析(一)
- tensorflow实现Word2Vec——生成词向量以及降维可视化
- 常见网页错误代码解析404、400、500、408...
- Apache service named reported the following error(OS 10055)由于系统缓冲区空间不足或队列已满解决办法?...
- 加拿大卫生部依据NNHPD核准Graminex L.L.C.的PollenBerry(R)
- 【图片流转成图片】vue处理后端传来的图片流信息并转换成图片显示在前端页面上【详细解释】
- Axure中继器怎么用
热门文章
- css font属性详解
- 在CentOS Linux系统上,启用ssh服务
- deepin15.9的linux内核版本,深度Deepin 15.9操作系统首次更新内容
- 电脑计算机睡眠和休眠模式区别,Windows系统的睡眠模式和休眠模式以及待机模式的区别知识科普...
- 夜深人静写算法(二)- 动态规划
- EXCEL日期格式不一致设置统一显示格式的方法
- i春秋 - Exploit-Exercises: Nebula - level03
- 微信号注册人工服务器,两个方法让你一次性找到微信人工客服,简单而又粗暴!...
- 合肥Android两天十面总结
- java 姓名生成器_java自动机器人自动生成修姓名工具类