每日一题--Tokitsukaze and Colorful Chessboard【二分】

题目


解题思路

今天这道题还算简单,看一遍大概就有思路,读一遍题后大致能想出来是一个区间查找问题,最适合用二分去做,这道题恰好适合学习了二分的基础的小伙伴来练手,

肯定是每个相隔一个放棋子能最大化利用空间,这样能在满足条件的基础上最大包容的其中一种棋子数量是(nn+1)/2(向上取整)
那么这道题就是在满足**n
n>=a+b**,且**(n*n+1)/2>=max(a,b)**,首先a,b范围0~1000000000,那么至少边长为50001的方格能放得下a+b,我们用二分答案来做,范围也就出来了,利用模版一找最小值n.

二分不熟悉的小伙伴请看这篇:二分查找&二分答案【模板+例题】带你精通二分!

代码实现

cpp 复制代码
void solve()
{
	int a,b;cin>>a>>b;
	int mx=max(x,y);
	int l=1,r=50005;
	while(l<r)
	{
		int mid=l+r>>1;
		if(mid*mid>=a+b&&(mid*mid+1)/2>=mx)r=mid;
		else l=mid+1;
	}
	cout<<l<<endl;
}
相关推荐
柏木乃一2 小时前
Linux线程(6)生产消费者模型
linux·运维·服务器·c++·分布式·线程·生产消费
铭哥的编程日记2 小时前
小企鹅装石头(栈模拟题)
算法
co_wait2 小时前
【C++ STL】map容器的基本使用
java·c++·rpc
汉堡go2 小时前
SLAM数学基础1
人工智能·算法·机器学习
汉克老师2 小时前
GESP 四级C++考试2025年3月第二部分判断题(1-10题)
数据结构·c++·排序算法·指针·结构体·gesp4级·gesp四级
qzhqbb2 小时前
不可检测水印
人工智能·算法
格林威2 小时前
工业相机图像高速存储(C++版):内存映射文件(MMF)零拷贝方案,附海康相机实战代码!
开发语言·c++·数码相机·计算机视觉·视觉检测·工业相机·海康相机
快敲啊死鬼2 小时前
机试day5
算法·华为od·华为
无限进步_2 小时前
深入解析string:从设计思想到完整实现
开发语言·c++·ide·windows·git·github·visual studio