P3817 小A的糖果
1.P1077 [NOIP2012 普及组] 摆花2.P3842 [TJOI2007] 线段3.P1164 小A点菜4.P2392 kkksc03考前临时抱佛脚5.P1102 A-B 数对6.P1002 [NOIP2002 普及组] 过河卒7.P163 银行贷款8.P1182 数列分段 Section II9.[NOIP2015 提高组] 跳石头10.P1734 最大约数和11.P8772 [蓝桥杯 2022 省 A] 求和12.P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles13.P5602 小 E 与美食14.P3817 小A的糖果15.P1130 红牌16.P1196 [NOI2002] 银河英雄传说17.P1955 [NOI2015] 程序自动分析18.P1621 集合19.P5250 【深基17.例5】木材仓库20.P2184 家谱21.[USACO16DEC] Cities and States S22.P4653 [CEOI2017] Sure Bet23.P1578 奶牛浴场24.P1387 最大正方形25.小鸟的设备26.P1439 【模板】最长公共子序列27.P1091 [NOIP2004 提高组] 合唱队形28.P1020 [NOIP1999 提高组] 导弹拦截29.P2340 [USACO03FALL] Cow Exhibition G30.P2285 [HNOI2004] 打鼹鼠31.P4995 跳跳!
32.P3817 小A的糖果
33.P5019 [NOIP2018 提高组] 铺设道路34.P1969 [NOIP2013 提高组] 积木大赛35.P1094 [NOIP2007 普及组] 纪念品分组36.P4447 [AHOI2018初中组] 分组小A的糖果
题目描述
小 A 有 $n$ 个糖果盒,第 $i$ 个盒中有 $a_i$ 颗糖果。
小 A 每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中糖的个数之和都不大于 $x$,至少得吃掉几颗糖。
输入格式
输入的第一行是两个用空格隔开的整数,代表糖果盒的个数 $n$ 和给定的参数 $x$。
第二行有 $n$ 个用空格隔开的整数,第 $i$ 个整数代表第 $i$ 盒糖的糖果个数 $a_i$。
输出格式
输出一行一个整数,代表最少要吃掉的糖果的数量。
样例 #1
样例输入 #1
3 3
2 2 2
样例输出 #1
1
样例 #2
样例输入 #2
6 1
1 6 1 2 0 4
样例输出 #2
11
样例 #3
样例输入 #3
5 9
3 1 4 1 5
样例输出 #3
0
提示
样例输入输出 1 解释
吃掉第 2 盒中的一个糖果即可。
样例输入输出 2 解释
第 2 盒糖吃掉 $6$ 颗,第 4 盒吃掉 $2$ 颗,第 6 盒吃掉 $3$ 颗。
数据规模与约定
- 对于 $30%$ 的数据,保证 $n \leq 20$,$a_i, x \leq 100$。
- 对于 $70%$ 的数据,保证 $n \leq 10^3$,$a_i, x \leq 10^5$。
- 对于 $100%$ 的数据,保证 $2 \leq n \leq 10^5$,$0 \leq a_i, x \leq 10^9$。
算法1
(贪心)
贪心策略:
如果相邻两个盒子糖果的数量大于x,就吃右边盒子的糖,否则不进行任何操作
为什么吃右边盒子的糖果呢?
如果我们吃掉左边盒子里的糖,就只会减少这一轮相邻两个盒子糖果的数量;
如果我们吃掉右边盒子里的糖,那么这次操作还可以减少下一轮相邻两个盒子糖果的数量,
因此符合贪心的逻辑
C++ 代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 10;
int n,x;
int a[N];
int ans;
signed main(){
scanf("%lld%lld",&n,&x);
for(int i = 1; i <= n; i++){
scanf("%lld",&a[i]);
}
for(int i = 1; i <= n; i++){
if(a[i] + a[i-1] > x) {
ans += a[i] - x + a[i - 1];
// cout << a[i] - x + a[i - 1] << endl;
a[i] = x - a[i - 1];
// cout << a[i] << endl;
}
}
printf("%lld",ans);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App