力扣117双周赛

第 117 场双周赛

给小朋友们分糖果 I

同T2

给小朋友们分糖果 II

数学

cpp 复制代码
class Solution {
public:
    long long distributeCandies(int n, int limit) {
        long long ans = 0;
        for (int i = 0; i <= min(n, limit); i++) {
            if (n - i <= limit) {
                ans += n - i + 1;
            } else if (n - i <= limit * 2) {
                ans += limit - (n - i - limit) + 1;
            }
        }
        return ans;
    }
};

重新排列后包含指定子字符串的字符串数目

DP

cpp 复制代码
class Solution {
public:
    int stringCount(int n) {
        const int MOD = 1e9 + 7;

        auto add = [&](long long &a, long long b) {
            a = (a + b) % MOD;
        };

        long long f[n + 1][2][3][2];
        memset(f, 0, sizeof(f));
        f[0][0][0][0] = 1;
        for (int i = 0; i < n; i++) for (int j = 0; j < 2; j++) for (int k = 0; k < 3; k++) for (int l = 0; l < 2; l++) {
            // 下一个字符填写除了 l, e, t 以外的 23 个字母
            add(f[i + 1][j][k][l], f[i][j][k][l] * 23);
            // 下一个字符填写 l
            add(f[i + 1][min(j + 1, 1)][k][l], f[i][j][k][l]);
            // 下一个字符填写 e
            add(f[i + 1][j][min(k + 1, 2)][l], f[i][j][k][l]);
            // 下一个字符填写 t
            add(f[i + 1][j][k][min(l + 1, 1)], f[i][j][k][l]);
        }
        return f[n][1][2][1];
    }
};

购买物品的最大开销

最小堆模拟

cpp 复制代码
class Solution {
public:
    long long maxSpending(vector<vector<int>> &values) {
        priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> pq;
        int m = values.size(), n = values[0].size();
        for (int i = 0; i < m; i++) {
            pq.emplace(values[i].back(), i);
        }
        long long ans = 0;
        for (int d = 1; d <= m * n; d++) {
            auto [v, i] = pq.top();
            pq.pop();
            ans += (long long) v * d;
            values[i].pop_back();
            if (!values[i].empty()) {
                pq.push({values[i].back(), i});
            }
        }
        return ans;
    }
};

--

相关推荐
oioihoii几秒前
深入理解 C++ 现代类型推导:从 auto 到 decltype 与完美转发
java·开发语言·c++
报错小能手5 分钟前
项目——基于C/S架构的预约系统平台 (1)
开发语言·c++·笔记·学习·架构
papership7 分钟前
【入门级-算法-5、数值处理算法:高精度的减法】
算法·1024程序员节
lingran__11 分钟前
算法沉淀第十天(牛客2025秋季算法编程训练联赛2-基础组 和 奇怪的电梯)
c++·算法
DuHz22 分钟前
基于MIMO FMCW雷达的二维角度分析多径抑制技术——论文阅读
论文阅读·物联网·算法·信息与通信·毫米波雷达
Dragon_D.1 小时前
排序算法大全——插入排序
算法·排序算法·c·学习方法
大数据张老师1 小时前
数据结构——红黑树
数据结构·算法·红黑树
Dream it possible!2 小时前
LeetCode 面试经典 150_链表_两数相加 (57_2_C++_中等)
leetcode·链表·面试
自在极意功。2 小时前
动态规划核心原理与高级实战:从入门到精通(Java全解)
java·算法·动态规划·最优子结构·重叠子问题
文火冰糖的硅基工坊2 小时前
[人工智能-大模型-54]:模型层技术 - 数据结构+算法 = 程序
数据结构·人工智能·算法