洛谷 P3817 小A的糖果

P3817 小A的糖果

题目描述

小A有N个糖果盒,第i个盒中有a[i]颗糖果。

小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖。

输入输出格式

输入格式:

第一行输入N和x。

第二行N个整数,为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

第二盒吃掉6颗,第四盒吃掉2颗,第六盒吃掉3颗。

30%的测试数据,2<=N<=20,0<=a[i], x<=100

70%的测试数据,2<=N<=1000,0<=a[i], x<=10^5

100%的测试数据,2<=N<=10^5,0<=a[i], x<=10^9

思路:贪心

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,x;
long long ans;
int num[100010];
int main(){
    scanf("%d%d",&n,&x);
    for(int i=1;i<=n;i++)
        scanf("%d",&num[i]);
    for(int i=1;i<n;i++)
        if(num[i]+num[i+1]>x){
            ans+=(num[i+1]+num[i]-x);
            num[i+1]-=(num[i+1]+num[i]-x);
        }
    cout<<ans;
}
时间: 2024-10-12 23:38:10

洛谷 P3817 小A的糖果的相关文章

P3817 小A的糖果(洛谷月赛)

P3817 小A的糖果 题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. 输入输出格式 输入格式: 第一行输入N和x. 第二行N个整数,为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

luogu P3817 小A的糖果

P3817 小A的糖果 题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. 输入输出格式 输入格式: 第一行输入N和x. 第二行N个整数,为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

洛谷P1120 小木棍

洛谷1120 小木棍 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50.     现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度.     给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度. 输入输出格式 输入格式: 输入文件共有二行. 第一行为一个单独的整数N表示砍过以后的小木棍的总数,其中N≤60 (管理员注:要把超过50的长度自觉过滤掉,坑了很多人了!) 第二行为N个用空个隔开的正整数,表示N根小木棍的长度.

【基础练习】【背包DP】洛谷1164 小A点菜题解

洛谷的题目又有那令人···的悲剧格式= = 洛谷1164 小A点菜 本题地址:http://www.luogu.org/problem/show?pid=1164 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点". 题目描述 不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩M元(M<=10000). 餐馆虽低端,但是菜品种类不少,有N种(N<=100),第i种

洛谷 3951 小凯的疑惑

洛谷 3951 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品. 输入输出格式 输入格式: 输入数据仅一行,包含两个正整数 aa 和 bb ,它们之间用一个空格隔开,表示小凯手 中金币的面值. 输出格式: 输出文件仅一行,一个正整数 NN ,表示不找零的情况下,小凯用手中

洛谷 P3951 小凯的疑惑

问题描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品. 输入格式 输入文件名为math.in. 输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值. 输出格式 输出文件名为math.out. 输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的

P3817 小A的糖果

题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. 输入输出格式 输入格式: 第一行输入N和x. 第二行N个整数,为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 说明

洛谷U4727小L的二叉树[树 LIS]

题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. 题目描述 在计算机科学中,二叉树是每个结点最多有两个子结点的有序树.通常子结点被称作“左孩子”和“右孩子”.二叉树被用作二叉搜索树和二叉堆.随后他又和他人讨论起了二叉搜索树.什么是二叉搜索树呢?二叉搜索树首先是一棵二叉树.设key[p]表示结点p上的数值.对于其中的每个结点p,若其存在左孩子lch,则key[p]>key[lch]:若其存在右孩子rch,则k

洛谷P1373 小a和uim之大逃离

题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个披头散发.青面獠牙的怪物,低沉着声音说:“呵呵,既然你们来到这,只能活下来一个!”.小a和他的小伙伴都惊呆了! 题目描述 瞬间,地面上出现了一个n*m的巨幅矩阵,矩阵的每个格子上有一坨0~k不等量的魔液.怪物各给了小a和uim一个魔瓶,说道,你们可以从矩阵的任一个格子开始,每次向右或向下走一步,从任