首页 > 其他分享 >Codeforces Round 878 (Div. 3) D. Wooden Toy Festival

Codeforces Round 878 (Div. 3) D. Wooden Toy Festival

时间:2023-06-21 19:33:32浏览次数:40  
标签:Toy 878 Wooden 最大值 mid int num 序列 include

题目翻译:给定一个序列,你可以把序列分为任意的三组不要求顺序,对于每一组序列给出一个数字作为标准,求出序列中和该数字的差绝对值的最大值,现在要求你选顶三个数字使得三个序列的差最大值的最大值最小

解题思路:二分,要想方差最小,就让每一组的极差都最小,即最大值减最小值最小

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=2e5+10;
int n;
int a[N];
//当x取小了,则会分成大于3个序列,当x取大了则不够3个序列
bool check(int x){
	int num=1;
	int k=a[1];
	for(int i=2;i<=n;i++){
		if(a[i]-k>x){
		num++;
		k=a[i];
	}
	}
	return num<=3;
}
void solve(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+1+n);
	int l=0,r=a[n]-a[1];
	while(l<r){
		int mid=l+r>>1;
		if(check(mid)){
			r=mid;
		}
		else{
			l=mid+1;
		}
	}
    //奇数的话需要加一
	cout<<l/2+l%2<<endl;
}
int main(){
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	
}

 

标签:Toy,878,Wooden,最大值,mid,int,num,序列,include
From: https://www.cnblogs.com/liyiyang/p/17496958.html

相关文章

  • 题解 CF1840D【Wooden Toy Festival】
    不妨设\(a\)单调递增(无重复),显然如果\(n\le3\)答案就是\(0\)。显然答案\(k\)具有可二分性。也就是说,当\(k<k_0\)时一定不存在合法的\(x,y,z\),当\(k\gek_0\)时一定存在,\(k_0\)就是答案。因此二分答案,只需要验证答案\(k\)是否存在合法的\(x,y,z\)。为了覆盖到......
  • 制作启动U盘的工具----Ventoy
    介绍直接上官网:https://www.ventoy.net/cn/index.html以下信息均来自官网。简单来说,Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把ISO/WIM/IMG/VHD(x)/EFI等类型的文件直接拷贝到U盘里面就可以启动了,无需其他操作。你可以一次性拷贝......
  • P8786 李白打酒加强版 题解
    李白打酒加强版题目大意一开始酒显里有\(2\)斗酒,每遇到一次店就会把酒显里的酒数量(单位:斗)乘\(2\),每遇到一次花就把酒显里的酒喝掉\(1\)斗。这一路上一共遇到店\(n\)次,遇到花\(m\)次,且最后一次遇到的是花,酒显里没有一斗酒了。计算这一路上遇到店和花的顺序总共有......
  • 联发科MTK8788 开发方案 4g核心板/开发板功能介绍 价格_厂家
    MTK8788(i500P)是一款基于MTK平台的通用型SoC,采用12nm制程的设计,是一款高性能的4GAI安卓智能模块,可运行android9.0操作系统。该核心板集成了4GLTE连接性,能够高效地实现全球连接。该模块同时具有集成的蓝牙、fm、wlan和gps模块,包含调制解调器和应用处理子系统,能够支持LTE/LTE-A和C......
  • [POI2005]SAM-Toy Cars 题解(贪心+堆)
    题面首先考虑一个贪心策略:当地板已经放满需要取出一个时,取下一次使用时间\(nxt\)最晚的那个。所以我们只需要一个可以快速求出一个集合中\(nxt\)最小的点并删除,插入新点的数据结构,这里很容易想到堆。代码很简洁,注意数组的下标是位置还是颜色(考场100pts到0pts)。code:......
  • CodeForces - 659C Tanya and Toys (map&模拟)
    CodeForces-659CTanyaandToysTimeLimit: 1000MS MemoryLimit: 262144KB 64bitIOFormat: %I64d&%I64uSubmit StatusDescriptionInBerlandrecentlyanewcollectionoftoyswentonsale.Thiscollectionconsistsof 109 typesof......
  • HDU 1878 欧拉回路 (并查集+欧拉回路)
    题目地址:HDU1878这个题要注意欧拉回路与欧拉通路的区别。在都保证连通性的前提下,欧拉回路要求每个点的度数都是偶数,而欧拉通路允许两个点的度数是奇数。所以这题用并查集判断连通性后判断下度数就可以了。代码如下:#include<iostream>#include<string.h>#include<math.h>#in......
  • Ventoy 1.0.90 发布,制作可启动 U 盘的开源工具
    Ventoy是一个制作可启动U盘的开源工具。使用Ventoy后,不需要反复格式化U盘,只需要把 ISO/WIM/IMG/VHD(x)/EFI等类型的文件直接拷贝到U盘里面就可以启动了,无需其......
  • AcWing 第 96 场周赛 T3-4878. 维护数组
    https://www.acwing.com/problem/content/4881/输入样例1:52218112153121221421322123输出样例1:364输入样例2:5410161151551......
  • 4878. 维护数组
    维护数组分析:分别维护两个值sum1,sum2,其他套线段树板子实现:structNode{intl,r;intminv;intsum1,sum2;}tr[N<<2];voidpushup(Node&u,N......