洛谷 P3817 小A的糖果

Posted 落月摇情满江树

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 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

这个题好像是个模拟来着,年代比较久远了  qwq

难度:普及-

技术分享图片
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n, m;
int sum;
int a[100005];
int main() {
    scanf("%d%d", &n, &m);
    for(int i = 1; i <= n; i++)
        scanf("%d", &a[i]);
    for(int i = 1; i < n; i++) {
        if(a[i]+a[i+1] > m) {
            int y = a[i]+a[i+1]-m;
            sum += y;
            a[i+1] -= y;
        }
    }
    printf("%d", sum);
    return 0;
}
80 分代码,不知道为啥WA了两个点,请大佬指出
技术分享图片
#include<cstdio>
using namespace std;
int n, x, k;
long long ans;
int a[100001];
int main()
{
    scanf("%d%d", &n, &x);
    for(int i = 1; i <= n; i++)
        scanf("%d", &a[i]);
    for(int i = 2; i <= n; i++)
        if(a[i]+a[i-1] > x) {
            k = a[i]+a[i-1]-x;
            if(a[i] >= k)
                a[i] -= k;
            else a[i] = 0;
            ans += k;
        }
    printf("%lld", ans);
    return 0;
}
AC了的代码
技术分享图片
#include <iostream>
#include <vector>
int main() {
  unsigned long long N, x;
  std::cin >> N >> x;
  std::vector<unsigned long long> a(N);
  for (unsigned i = 0; i < N; ++i) { std::cin >> a[i]; }
  unsigned long long ans = 0ull;
  for (unsigned i = 1; i < N; ++i) {
    if (a[i - 1] + a[i] > x) {
      if (a[i - 1] < x) {
        ans += a[i] + a[i - 1] - x;
        a[i] -= a[i] + a[i - 1] - x;
      } else {
        ans += a[i];
        a[i] = 0;
        ans += a[i - 1] - x;
      }
    }
  }
  std::cout << ans;
  return 0;
}
题目自带的标程

 



以上是关于洛谷 P3817 小A的糖果的主要内容,如果未能解决你的问题,请参考以下文章

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

luogu P3817 小A的糖果

P3817 小A的糖果

P3817 小A的糖果

P3817 小A的糖果

luogu P3817 小A的糖果