蓝桥杯Candy Store

每日一练社区 2021-08-11 11:49:52

问题描述 经营一家糖果店是非常困难的,你需要优化各种各样的东西。最近你在销售一种非常时髦的糖果,叫做Whizboppers。这种糖果变质非常迅速,所以:
·你必须每天早上从供应商买来新的Whizboppers。
·你必须用当天早上从供应商买来的盒子装着糖果出售。
你可以从你的供应商处买来装有任意整数克糖果的盒子。
每天有至多k位顾客到你的店里来。从第1个人开始,每个人会选择花费整数分的钱来买Whizboppers,钱数在1分到C分之间(包含1分和C分)。你打算以1分钱每克的价格出售;所以如果一个人想要花4分钱,你会给他恰好4克糖果。你可以给他1个4克的盒子,也可能是1个2克的盒子和2个1克的盒子。
你最少需要买几个盒子才能保证,不管每个人想花多少钱买糖,你总是可以给他们对应质量的糖果?
  注意:当一个人选择自己想买多少糖果后,你知道之前的人已经买了多少糖,但不能预知之后的人打算买多少糖。
举个例子,如果每天至多有2位顾客到你的店里,每个人至多花2分钱(k=2,C=2),你可以从你的供应商买4个1克的盒子。但是你可以做的更好:只要买2个1克的盒子和1个2克的盒子,就可以满足你的顾客。如下所示:
第一个人给第一个人的盒子第二个人给第二个人的盒子2分1 个 2克2分
1分2 个 1克
1 个 1克1分1 个 1克2分
1分1 个 2克
1 个 1克
  不论第一个人怎么买,你都可以给他对应质量的盒子,同时保证第二个人也能拿到正确质量的糖果。所以对于k=2,C=2,你用3个盒子就可以满足任意的顾客需求。 输入格式 第一行一个整数T,表示询问数量。 接下来T行,每行包含两个整数k和C,分别表示最大人数和每个人花费的最多钱数。 输出格式 对于每一个询问,输出一行包含"Case #x: y",x是询问编号(从1开始标号),y是你每天最少需要的盒子数量。

以下程序实现了这一功能,请你填补空白处的内容:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int n, k, count = 1;
	long long c;
	cin >> n;
	while (n--)
	{
		cin >> k >> c;
		int num = k; 
		long long sum = k;
		for (long long i = 2; i <= c; i = sum / k + 1)
		{
			int t = num;
			________________;
		}
		cout << "Case #" << count++ <<": " << num << endl;
	}
	return 0;
}
...全文
357 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
理解成功了我,加油
  • 打赏
  • 举报
回复 1
不懂诶,有没有大佬讲讲
HAlx 2023-03-15
  • 打赏
  • 举报
回复
蒙对了😂
DevEco Studio 2022-12-15
  • 打赏
  • 举报
回复
XLX假猫XLX假猫咪XLX假猫XLX假猫XLX假猫XLX假
瀛神 2022-11-08
  • 打赏
  • 举报
回复 1
哈哈可难度
tnt1314 2022-01-28
  • 打赏
  • 举报
回复
题目都没看懂
ETOZhuangYan 2022-06-11
  • 举报
回复 1
@tnt1314 题意我来帮忙翻译一下,还是不懂的话别喷我:现在至多 k 个人,每个人至多要 c 个糖果,你有无数个糖果,无数个可以装不同质量的糖果的盒子,问最少用几个盒子可以满足最多 k 个人每个人最多 c 个糖果的需求? 每次用完盒子后将不能再用那个盒子。 我反正是看懂了的,你看不懂的话去网上问问。
China_feng123 2021-10-30
  • 打赏
  • 举报
回复
各位大神,怎么解?
圆周率352 2021-10-01
  • 打赏
  • 举报
回复
沙发

11,224

社区成员

发帖
与我相关
我的任务
社区描述
Study well and make progress every day
其他 企业社区
社区管理员
  • 每日一练社区
  • CSDN学习
  • 幻灰龙
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧