kedaOJ#P0764. 小可的糖果盒

题目

P0764. 小可的糖果盒

思路

题目要求是贪心,但是个人觉得dp更有性价比

代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int min_candies(int n, int x, vector<int>& candies) {
    vector<int> dp(n, 0);
    dp[0] = max(0, candies[0] - x);

    for (int i = 1; i < n; ++i) {
        int total = candies[i] + candies[i-1];
        if (total > x) {
            int eat = total - x;
            if (candies[i] >= eat) {
                dp[i] = dp[i-1] + eat;
                candies[i] -= eat;
            } else {
                dp[i] = dp[i-1] + candies[i];
                candies[i] = 0;
            }
        } else {
            dp[i] = dp[i-1];
        }
    }

    return dp[n-1];
}

int main() {
    int n, x;
    cin >> n >> x;
    vector<int> candies(n);
    for (int i = 0; i < n; ++i) {
        cin >> candies[i];
    }
    cout << min_candies(n, x, candies) << endl;
    return 0;
}

posted @   mcr130102  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
请不要抄袭任何人的博客,这是对一名开发者最基本的尊重。
点击右上角即可分享
微信分享提示
人类把最精密的保密系统,都用在了自我毁灭上。