每日一题--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;
}
相关推荐
水饺编程7 分钟前
第5章,[Win32 章节] :绘图模式
c语言·c++·windows·visual studio
INGNIGHT21 分钟前
1908 · 布尔表达式求值(stack单调栈&dfs)
开发语言·c++·算法
lucas_AI38 分钟前
把表格压成 64 个 token,长文档问答反而更准了:先找表,再看数
人工智能·深度学习·算法
小小杨树1 小时前
【C++】学习:双缓冲视频流水线深解析
c++·性能优化·音视频开发
Zzz 小生1 小时前
Lazy Theta*:把昂贵的视线检测留到“真正需要”时再做
人工智能·算法·贪心算法·推荐算法
l1258652 小时前
# LangGraph Deep Research Agent 全流程设计:多轮研究、人机协同与真实来源管理
数据库·人工智能·python·算法·自然语言处理·oracle·langchain
青少儿编程课堂2 小时前
图形化编程实战:智能交通灯调度台,一个作品讲透循环、条件与广播
c++·python·算法·bfs·信息学竞赛
evans在进步2 小时前
LeetCode 438 找到字符串中所有字母异位词:滑动窗口与排序解法详解
算法·leetcode·职场和发展
赵民勇2 小时前
C++无锁编程详解
c++
M78佐菲2 小时前
Linux多线程:创建、回收与互斥同步
linux·笔记·学习·算法