蓝桥杯 分巧克力(二分)


思路:标准二分题,二分每一次选择的边长X。

check(x):对于一块矩形巧克力能分出的边长x正方形数量为(矩形长/x)*(矩形宽/x),如果所有的巧克力能分出>=朋友人数,则此方案可行l=x,否则不可行r=x-1。

Code:

#include<iostream>
#include<map>
#include<algorithm>
#include<cmath>
#include<set>
#include<string>
#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
typedef long long ll;
const int Max = 1e6 + 5;

int n, s;
int lst[Max][2];

int check(int x)
{
   

	int sum = 0;
	for (int i = 1;i <= n;i++)
	{
   
		sum += (lst[i][0] / x) * (lst[i][1] / x);
	}
	if (sum >= s)return 1;
	else return 0;
}



int main()
{
   
	cin >> n >> s;
	for (int i = 1;i <= n;i++)cin >> lst[i][0] >> lst[i][1];
	int l = 1, r = 1e9 + 5;
	while (l<r)
	{
   
		int mid = (l + r+1) / 2;
		if (check(mid))l = mid;
		else r = mid - 1;
	}
	cout << l;
}

全部评论

相关推荐

05-20 21:57
已编辑
门头沟学院 Java
喜欢吃卤蛋的悲伤蛙在...:建信融通没消息吧,我2说有实习挂简历不理了
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务