6. 小A的糖果(普及-)

问题描述

题目描述
小A有n个糖果盒,第i个盒中有a_i颗糖果。

小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中糖的个数之和都不大于x,至少得吃掉几颗糖。

输入格式
输入的第一行是两个用空格隔开的整数,代表糖果盒的个数n和给定的参数x。
第二行有n个用空格隔开的整数,第i个整数代表第i盒糖的糖果个数a_i。 
输出格式
输出一行一个整数,代表最少要吃掉的糖果的数量。

输入输出样例

输入 #1

3 3
2 2 2

输出 #1

1

输入 #2

6 1
1 6 1 2 0 4

输出 #2

11

输入 #3

5 9
3 1 4 1 5

输出 #3

0

说明/提示
样例输入输出 1 解释
吃掉第 2 盒中的一个糖果即可。

样例输入输出 2 解释
第2盒糖吃掉6颗,第4盒吃掉2颗,第 6 盒吃掉3颗。

数据规模与约定
对于30%的数据,保证n<=20,a_i,x<=100。

对于70%的数据,保证n<=10^3, a_i,x<=10^5。

对于100%的数据,保证2<=n<=10^5, 0<=a_i,x<=10^9。

问题分析

这是一道较为简单的贪心问题,因为要保证任意两个相邻的盒子中糖的个数之和都不大于x,所以必须要将两个相邻的糖的个数相加并和x进行比较,如果相邻的糖的个数相加大于x则必须吃掉多余的部分,问题的重点在于吃哪一份糖果,很明显,只有后面一份糖果的数量会影响到之后计算相邻糖果数量,所以后面一份糖果的数目越少,之后的相邻糖果数会变得越少,所以我们选择多余的部分吃的全是后面一部分的糖果,这样我们就可以得到最优解。

代码实现

#include <iostream>

using namespace std;

int n, x;

long long ans;		//注意答案范围可能超出int型的大小

int a[100005];

int main()
{
	cin >> n >> x;
	for (int i = 0; n > i; i++)
		cin >> a[i];
	for (int i = 0; n > i; i++)
	{
		if (a[i] + a[i + 1] > x)
		{
			ans += a[i] + a[i + 1] - x;
			a[i+1] -= a[i] + a[i + 1] - x;		吃后面一堆糖果即a[i+1]
		}
	}
	cout << ans;
	return 0;
}

运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

贪心算法的特点是只考虑眼前的利益最大化,虽然有可能会出错,但幸运的是大多数情况下还是可行的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
糖果MES系统小程序是一款专为糖果生产企业所设计开发的生产管理系统小程序。它通过与企业现有的MES系统进行数据对接,帮助企业实现更高效的糖果生产管理和生产过程监控。 首先,苦糖果MES系统小程序提供了设备监控功能。通过与企业现有的设备连接,实时监测设备的运行状态和生产数据,包括设备的开机时间、停机时间、生产数量等等。这样,企业可以随时查看设备运行状态,及时发现异常情况并进行处理,提高设备的利用率和生产效率。 其次,苦糖果MES系统小程序还提供了生产计划管理功能。企业可以在系统中创建生产计划并安排生产任务,系统会根据设备的状态和产能自动进行任务分配。同时,系统还能按照生产计划的优先级进行任务排序,确保重要订单的优先生产。这样,企业可以更加科学和有序地安排生产计划,提高生产效率。 此外,苦糖果MES系统小程序还提供了生产数据分析功能。系统会自动收集设备和生产过程中的各种数据,并生成相应的报表。企业可以通过这些报表,全面了解生产过程中的各项指标,如生产速度、故障率、产量等等。这样,企业可以及时发现生产中存在的问题,并采取相应的措施进行优化和改进。 总之,苦糖果MES系统小程序通过设备监控、生产计划管理和数据分析等功能,帮助糖果生产企业实现生产过程的精细化管理和优化,提高生产效率和质量,进一步提升企业竞争力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值