HNU 贪心的阿迪

题目

在这里插入图片描述

思路

暴力模拟吧。。

AC代码

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k, M, D;
	cin >> n >> k >> M >> D;
	//有n颗糖果 k个人 每次分配的最大数量M 最大分配次数D
	int candy[k + 1];
	int max_ = -1;
	for (int i = 1; i <= M; ++i) {
		int temp = n;
		memset(candy, 0, sizeof candy);
		int num = 0; //表示分配次数
		bool flag = true;
		while (true) {
			for (int index = 1; index <= k; ++index) {
				if (index == 1) {
					num++;
					if (num > D) {
						flag = false;
						break;
					}
				}
				if (temp < i) {
					break;
				}
				candy[index] += i;
				temp -= i;
			}
			max_ = max(max_, candy[1]);
			if (!flag)
				break;
		}
	}
	cout << max_;
}

后记

数组没学好,为什么

int candy[k+1] = {0};

在oj上会报错??

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一袍清酒付825

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值