蓝桥杯备战10.分巧克力

P8647 蓝桥杯 2017 省 AB 分巧克力 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

暴力枚举 过70%样例

cpp 复制代码
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 2e7+10,M = 1e3+10;
int n,k;
int h[N],w[N];
bool check(int x)
{
	int cnt = 0;
	for(int i=1;i<=n;i++)
	{
		cnt+=(h[i]/x)*(w[i]/x);
	}
	if(cnt>=k)return true;
	else return false;
}
signed main()
{
	std::ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>h[i]>>w[i];
	int ans = 0;
	for(int i=1;i<=1e5;i++)
	{
		if(check(i))
		ans=i;
	}
	cout<<ans;
	return 0;
}

二分

cpp 复制代码
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 2e7+10,M = 1e3+10;
int n,k;
int h[N],w[N];
bool check(int x)
{
	int cnt = 0;
	for(int i=1;i<=n;i++)
	{
		cnt+=(h[i]/x)*(w[i]/x);
	}
	if(cnt>=k)return true;
	else return false;
}
signed main()
{
	std::ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>h[i]>>w[i];
	int ans = -1;
	int l = 0,r = 1e5;
	while(l<r)
	{
		int mid = (l+r+1)/2;
		if(check(mid))
		{
			l = mid;
			ans = l;
		}
		else
		{
			r = mid-1;
			ans = r;
		}
	}
	cout<<ans;
	return 0;
}
相关推荐
ychqsq20 小时前
234.无题
经验分享·职场和发展
考研保研资料分享20 小时前
物理保研至中科大:固体物理复习、四场面试与科研追问
面试·职场和发展
鸥梨菌Honevid21 小时前
UVM Sequencer 深度解析:FIFO 深度、req/rsp 应答模型与高频面试坑
面试·职场和发展
studyForMokey1 天前
【Android 面试】Paging3
android·面试·职场和发展
aqiu1111111 天前
蓝桥杯真题复盘:Fibonacci 数列与黄金分割(C++ 算法详解)
c++·算法·蓝桥杯
.道阻且长.1 天前
Linux软件包管理器
linux·运维·ubuntu·职场和发展·centos
考研保研资料分享1 天前
211英语专业跨保清华法学:2022年法学面试与口译考核复盘
面试·职场和发展
考研保研资料分享1 天前
2024双非材料保研复旦:五校面试题与科研复盘
面试·职场和发展
救救孩子把1 天前
AI面试八股文-21_21-多模态Agent面试题-Vision-Language-Agent
人工智能·面试·职场和发展·llava·多模态agent
Nil2081 天前
leetcode 5最长回文子串
算法·leetcode·职场和发展