首页 > 其他分享 >P1676 [USACO05FEB] Aggressive cows G 题解

P1676 [USACO05FEB] Aggressive cows G 题解

时间:2023-05-10 20:11:21浏览次数:57  
标签:cnt USACO05FEB int 题解 P1676 mid 距离 cows

题目传送门

解题思路

最大值最小化问题,考虑二分答案

首先要排序,保证序列单调不降,然后求出两个隔间之间的距离。

sort(a+1,a+1+n);
for(ri i=1;i<=n;i++)
	dis[i]=a[i+1]-a[i];

二分出一个 \(mid\),判断它是否合法:每次累加距离,如果距离和比 \(mid\) 大,说明当前可以分配牛,记录数量;再把距离和归零,方便下次计算。最后比较可以分配牛的数量与牛的数量,如果前者大于等于后者,则说明当前 \(mid\) 合法。

int check(int mid){
	int sum=0,cnt=1;
	for(ri i=1;i<=n;i++){
		sum+=dis[i];
		if(sum>=mid){
			sum=0;
			cnt++;
		}
		if(cnt>=m)return 1;
	}
	return 0;
}

如果当前 \(mid\) 合法,求出最大的 \(mid\),左端点变为 \(mid+1\),否则右端点变为 \(mid-1\),进一步缩小范围。

int l=1,r=1e9;
while(l<=r) {
	int mid=l+r>>1;
	if(check(mid)){
		ans=max(ans,mid);
		l=mid+1;
	}
	else r=mid-1;
}

标签:cnt,USACO05FEB,int,题解,P1676,mid,距离,cows
From: https://www.cnblogs.com/zzyblog0619/p/17389205.html

相关文章

  • Codeforces Round 683 (Div. 1, by Meet IT) ABCDF题解
    F和D都在ABC上做过类似的,但是没打好,道心破碎。。。。A.Knapsack若物品质量在[(w+1)/2,w]之间做完了否则一直贪心加voidsolve(){intn;llw;cin>>n>>w;intc=n;for(inti=1;i<=n;i++){cin>>a[i];if(a[i]>w)c--;}if(!c){......
  • Linux环境下,输入文件的编码格式和系统格式导致的问题解决办法
    1.用vim111.txt进入查看状态 2系统格式的查看和修改查看指令:setfileformat修改指令:setfileformat=unix3编码格式的查看和修改 查看指令 :setfileencoding 修改指令 在Vim中直接实行转换文件编码,比如将一个文件转换成u......
  • linux静态库的制作及问题解决
       首先介绍下分文件,在学习或者开发中,实现一个项目需要实现很多的功能,那么这些功能不可能在一个".c"文件下实现,需要多个".c"文件来共同实现,但是程序的入口只有一个,就体现了分文件编程的重要性,在主函数中调用其余的功能函数。分文件编程的优点及意义就是:分模块编程思......
  • CF1825D1 题解
    一、题目描述:给定$n$和$k$,表示有$n$个点,其中有$k$个点是关键点,这$k$个点随机分布。给出$n$个点的连接方式,保证构成一棵树,求有期望多少个点使得这个点到$k$个关键点的距离之和最小,答案对$1e9+7$取模。数据范围:$1\leqn\leq2e5,1\leqk\leqmin(n,3)......
  • 使用vue的keep-alive缓存组件,三级菜单组件无法缓存问题解决
    使用vue做后台管理系统,需求是所有的菜单打开之后,下次点击的时候的使用缓存,这里很简单的做法就是用来包裹住;但是一级菜单和二级菜单都没有问题,三级菜单就会出现无法缓存的问题,网上找资料说是vue中keep-alive本身存在的缺陷,需要在路由守卫中将matched属性做一下优化,具体如下//......
  • Luogu P5576 [CmdOI2019]口头禅 题解
    upd:修改了一些思路的表达,帮助理解。首先膜拜yyc大佬出这样的毒瘤好题。另外感谢永无岛、xtx1092515503、hs_black提供的思路。这里整理了一下这些思路,可能会有所启发。题意:给定一个字符串构成的序列,多次查询给定区间内各字符串的最长公共子串长度。提供一种后缀数组+......
  • ABC262Ex Max Limited Sequence 题解
    题意:给定\(m\)个限制\((l_i,r_i,p_i)\)及\(n,k\),求满足以下条件的长度为\(n\)的不同序列\(a=(a_1,a_2,\cdots,a_n)\)的数目。\(\foralli\in[1,n],0\leqa_i\leqk\)\(\foralli\in[1,m],\max\limits_{j\in[l_i,r_i]}a_j=p_i\)同P4229,但数据更强,目测只允......
  • 【问题解决】Kafka报错 Bootstrap broker x.x.x.x:9092 (id: -1 rack: null) disconne
    问题复现近日针对某一客户需求开发了一个需要使用Kafka的功能,功能是什么暂且不论,在本地虚机的Kafka连接一切正常遂放到测试服务器上验证功能,以下是监听topic成功和警告报错:2023-05-0910:22:23[localhost-startStop-1]INFOorg.apache.kafka.clients.consumer.ConsumerConfig......
  • ABC191F 题解
    题目传送门题目分析我们发现,\(\text{min}\)操作实际上就是把两数当中较大的那个删除,较小的那个数不受影响,所以用最小的数删还是用另一个数删是无区别的。一个性质:\[\gcd(x,y)\le\min(x,y)\]不管\(a_{min}\)是原来的还是在\(\text{gcd}\)操作后新生成的,所以无论什么时......
  • ant-select数据会发生卡顿问题解决
    <a-selectv-model="form.region"show-searchplaceholder="请选择"option-filter-prop="children"@search="handleSearch"@popupScroll="handlePopu......