Aggressive cows(最大化最小值问题)

Aggressive cows 愤怒的牛(c++) 农夫 John 建造了一座很长的畜栏,它包括NN (2 阅读详情

点击打开链接

Problem Description
Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 <= xi <= 1,000,000,000).

His C (2 <= C <= N) cows don't like this barn layout and become aggressive towards each other once put into a stall. To prevent the cows from hurting each other, FJ want to assign the cows to the stalls, such that the minimum distance between any two of them is as large as possible. What is the largest minimum distance?
 

Input
* Line 1: Two space-separated integers: N and C< br>< br>* Lines 2..N+1: Line i+1 contains an integer stall location, xi
 

Output
* Line 1: One integer: the largest minimum distance
 

Sample Input
  
5 3 1 2 8 4 9
 

Sample Output
  
3
 

题目大意:

//有n个点,给出每个点的位置,然后没c个点一组,这一组里的距离的最小值为minn,在若干个这样的组合中求出各个minn值中的最大值

思路:

将位置排排序,在最小距离和最大的距离中间,进行二分,看看能放的牛的牛棚的个数,和牛的数量比较,然后改变二分的区间。



#if 0
#include<iostream>
#include<cmath>  
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int a[100005];
int n,c;
int fun(int mid)
{
	int cnt=1,sum=0;
	for(int i=1; i<n; i++)
	{
		if(sum+a[i]-a[i-1]<mid)
		{
			sum+=a[i]-a[i-1];
		}
		else
		{
			sum=0;
			cnt++;	
		}	
	}
	
	if(cnt>=c)
	{
		return 1;	
	}
	else
	{
		return 0;	
	}	
}

int main()
{
	
	while(scanf("%d%d",&n,&c)==2)
	{
		memset(a,0,sizeof(a));
		for(int i=0; i<n; i++)
		{
			scanf("%d",&a[i]);
		}
		
		sort(a,a+n);
		int r=a[n-1]-a[0],l=a[n-1]-a[0];
		
		for(int i=1; i<n; i++)
		{
			if(a[i]-a[i-1]<l)
				l=a[i]-a[i-1];
		}
		
		while(r>=l) 
		{
			int mid=(l+r)/2;     
			if(fun(mid))            //多了 
			{
				l=mid+1;
			}
			else
			{
				r=mid-1;
			}
		}
		
		printf("%d\n",r);
	
	}
}
#endif





GaN制备micro-led(一) 随着第三代半导体 GaN 材料的快速发展,GaN 基 LED 发展迅速并广泛商业化,这 为可见光通信的实现及应用提供了基础。然而,普通商用 LED 的调制带宽只有几十兆 赫兹,并不能很好的满足可见光通信系统高传播速率的需求。为增大调制带宽,针对发 射端 LED 光源部分的改进仍需提高。将光子晶体结构引入 LED 芯片量子阱内部,能够 影响光子寿命和光子传播,进而改变 LED 芯片的调制带宽和光提取效率。结合倒装微 尺寸(Micro)LED 结构,使其封装体积最小化,这使得可见光通信能够更加灵活地. 阅读详情

相关推荐

电子工程师必看:dB与放大倍数快速换算表(附常见误区解析)

本文为电子工程师提供了dB与放大倍数快速换算的实战指南。文章深度解析了分贝的本质与核心价值,并提供了电压/电流与功率增益的速查表及心算技巧。重点剖析了混淆电压与功率dB、-3dB带宽理解等常见误区,并结合示波器、频谱仪测量及系统级应用,帮助工程师在实际工作中高效、准确地运用这一对数工具。

weixin_29214199的博客 655

贪心问题(二分判定法)---牛棚距离问题

Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,…,xN (0 <= xi <= 1,000,000,000). His C (2 <= C <= N) cows don’t like this barn layout and b

qq_43637727的博客 1270

MacOS M芯片部署ComfyUI:从环境排雷到插件生态一站式指南

本文为MacOS M系列芯片用户提供了一份详尽的ComfyUI部署指南。文章深入剖析了因架构差异导致的常见安装报错根源,并给出了基于MPS后端的正确PyTorch安装命令。从创建纯净Python虚拟环境、分步安装依赖,到验证GPU加速,手把手指导完成部署。同时,还推荐了包括管理器、汉化在内的必备插件,以完善使用生态,帮助用户一站式解决从环境搭建到效率提升的所有问题。

weixin_29261711的博客 994

Aggressive cows 愤怒的牛(c++题解)

农夫 John 建造了一座很长的畜栏,它包括NN (2

hb_zhyu的博客 2798

XVF3800麦克风阵列实战:从选型到快速原型搭建

本文详细介绍了XVF3800麦克风阵列的选型与快速原型搭建实战经验。从开箱即用的特性到波束成形、回声消除等核心功能拆解,再到硬件设计避坑指南和固件开发技巧,帮助开发者高效实现智能语音设备的开发。特别适合智能音箱、会议终端等需要远场拾音和声源定位的应用场景。

weixin_29161719的博客 274

AD2S1210与DSP28335 SPI通信中的GPIO配置陷阱与解决

本文深入剖析了AD2S1210与DSP28335进行SPI通信时,因GPIO输入限定配置不当导致数据整体右移的典型问题。文章指出,错误地将MISO引脚配置为带采样周期的同步模式是根本原因,并提供了将输入选择限制正确设置为异步模式的解决方案。同时,总结了不同应用场景下GPIO输入限定的配置原则,为高速同步通信的稳定实现提供了关键指导。

weixin_29163857的博客 146

一道简单而经典的二分,借用一点挑战上的方法

Aggressive cows 题目:Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 <= xi <= 1,000,0...

di6499的博客 249

基于Python的京东商品价格监控与降价提醒系统设计与实现

本文详细介绍了如何使用Python构建一个完整的京东商品价格监控与降价提醒系统。系统通过爬虫技术实时抓取京东商品价格信息,结合数据存储与分析,实现价格波动监控和智能降价提醒功能。文章涵盖了系统设计、技术选型、代码实现以及部署方案,为电子商务价格监控领域提供了一个实用的解决方案。关键词:Python爬虫、京东API、价格监控、降价提醒、自动化。

2201_76125261的博客 405

二分+贪心:最大化最小值+最小化最大值

Problem Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,…,xN (0 <= xi <= 1,000,000,000). His C (2 <= C <= N) cows don’t like this barn layo

qq_46231566的博客 703

机器人控制算法九之 位姿描述与空间变换

机器人控制算法九之 位姿描述与空间变换

yohnyang的博客 1034

读懂ARM汇编程序,你只差这篇!保姆级教程(附完整示例剖析)!

ARM汇编中的符号、标号、伪操作有哪些?C语言和汇编语言如何混合编程?GNU ARM汇编和ARM汇编的区别有哪些?

车载系统攻城狮 1万+

poj 2456 Aggressive cows (最小值最大化二分问题)

Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11952   Accepted: 5842 Description Farmer John has built a new long barn, with N (2 His

K键盘里的青春K 2916

【异常】安装hermes-agent时Git克隆大仓库报错:error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CAN

摘要:本文分析了Ubuntu服务器执行Git递归克隆时出现的网络传输中断错误(HTTP/2流异常关闭、数据截断)。主要原因是网络限制、协议兼容问题和缓冲区不足。提供了四种解决方案:1)扩大Git HTTP缓冲区;2)切换为HTTP/1.1协议;3)采用浅克隆+分步拉取子模块;4)网络优化措施。重点推荐浅克隆分步拉取作为最有效方案,所有方法无需重启即可生效,可快速解决大仓库递归克隆失败问题。

奶爸的编程之路,也就一周冷个三天 671

POJ-2456 Aggressive cows(最小值最大化问题)

POJ-2456 关于这种“最小值最大化"的问题是一种典型的二分思路,步骤如下:     1、将要处理的序列从小到大sort一遍;     2、求出最小值能取值的范围 [ 0,a[n] - a[1]] 。     3、再这个范围内进行二分。 #include <iostream> #include <algorithm> using namespace std; #define LL long long #define N 100010 int a[N]; int main() {

qq_45869365的博客 287

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【二分答案】-----【Aggressive Cows】

本题是经典“最大化最小值 + 单调判定”模板。易错点坐标差超int,要用 64 位;不要把下界设 0(否则mid = 0时 check 永远成功 → 死循环);输入多组数据时记得重置数组/变量。思考扩展:若要求“最大化两两距离之和”或“最小化最大距离”,二分+贪心就失效,需要 DP / 其他优化策略,可在练习后自行探究。

2401_82676816的博客 984

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Aggressive cows(最大化最小值问题(二分搜索))

题目来源:http://poj.org/problem?id=2456 【题意】 有n个牛舍放在一维坐标轴的不同位置,把m头牛分别放进不同的牛舍,问,任意两头牛之间最大距离是多少。 【思路】 最大化最小值问题,采用二分搜索,搜索一个最大值,满足可以将这m头牛放进不同的牛舍里,即,若是当前位置是d[pre],而用二分搜索出的一个值是d,那么下一个牛舍next就必须符合d[next]-d[pre

Crazy 858

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

二分法的应用:最大化最小值 POJ2456 Aggressive cows

/* 二分法的应用:最大化最小值 POJ2456 Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18125 Accepted: 8636 Description Farmer John has built a new long bar...

as3399639的博客 224

Aggressive cows

题目: Aggressive cows ( POJ No.2456 ) 农夫约翰搭了一间有N间牛舍的小屋。牛舍排在一条线上,第i号牛舍在x的位置。但是他的M头牛对小屋很不满意,因此经常互相攻击。约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其他牛尽可能远的牛舍。也就是要最大化最近的两头牛之间的距离。 ①限制条件 ●2≤N≤100000 ●2≤M≤N_ ●0≤xj≤10'...

qq_1300258993的博客 725

POJ 2456 Aggressive cows(贪心 + 二分)

原题链接:Aggressive cows 题目大意:农夫 建造了一座很长的畜栏,它包括  个隔间,这些小隔间依次编号为. 但是, 的  头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让牛互相伤害。 决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是什么呢? 题目分析:题意想要表达的是 把头牛放到个带有编号的隔间里,使得任意两头牛...

laugh12321的博客 316

最大化最小值---二分

Aggressive cows 题目意思:农民约翰有用C只牛,然后他有N个隔间,每个隔间都有自己的坐标位置(一维的)pos,如何安排把牛安排进隔间才能使,所有牛之间距离的最小值最大,我们不需要求这个分配方案,我们只需要求这个最小距离的最大值,很裸的最小值最大化。 输入 N=5 M=3 x={1, 2, 8, 4, 9} 输出 3(在位置1,4,9的牛舍中放入3头牛) #inclu...

策马奔腾向前冲 477

poj2456- Aggressive crows poj3258 - River Hopscotch 二分+贪心--最大化最小值+整数防死循环

poj 2456Aggressive crows 此题核心在于二分搜索牛之间的距离,然后贪心地放牛作为判断是否满足条件的依据。 贪心:在满足两牛之间距离不小于d的情况下,如何尽可能多放牛?(关键,剔除了很多情况) 贪心之前往往要排序。 二分:二分搜索找出d,方便判断。 ①注意整数二分的写法,有些写法有可能会陷入死循环 ②关于最大化最小值和最小化最大值问题,到底取left还是right...

zjyang12345的博客 295

万能的二分

最大化最小值 先上题目: Aggressive cows 题目简意: 在一条直线上有N个位置,第\(i\)个位置的坐标是\(X_i\),现在有M头牛要放入这N个位置中,并最大化两头牛之间的距离. 这道题我们可以用二分搜索来做.设d(x)为能否让任意两头牛之间的距离大于等于x,那么显然我们从1~INF去二分这个数,直到找到满足条件的最大的x 那么对于每一个x,我们要去验证是否可行: 假设第...

banzuke3318的博客 193

程序设计与算法基础---二分算法思想

导读: 时间复杂度-O() 排序算法时间复杂度 二分算法 插入排序: 二分查找: 二分法求方程的根: 例题一:找一对数 方法二:排序+二分 方法三: 课后习题: 1 POJ2456 Aggressive cows 二分 Description Farmer John has built a new long b...

Techblog of HaoWANG 920

E - Aggressive cows

Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 <= xi <= 1,000,000,000). His C (2 <= C <= N) cows

Cworld2017的博客 610

二分查找/答案题目

【代码】二分查找/答案题目。

txzrxz的博客 57

二分算法(优化)

在一个有序数组中查找一个数。每次考察数组当前部分的中间元素,如果中间元素刚好是要找的,就结束搜索过程;如果中间元素小于所查找的值,那么左侧的只会更小,不会有所查找的元素,只需到右侧查找;如果中间元素大于所查找的值,同理,只需到左侧查找。

2401_88036229的博客 458
上一篇: Max Factor(找最大素数)
下一篇: Monthly Expense(最大化最小值问题)
Joined
博客等级 码龄10年 19粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值