1 条题解

  • 0
    @ 2025-10-19 17:43:33

    解题思路

    核心观察 颜色平衡条件:设每种颜色买 tt 个,则总数为 k×tk \times t 模运算性质:重量在模 mm 意义下具有可加性 分组处理:相同颜色的糖豆放在一组考虑

    算法设计

    第一步:预处理每个颜色对于每个颜色 ii,我们计算数组 fi[r]f_i[r]:表示用该颜色的糖豆组合出总重量模 mmrr 的最小花费。这可以用模意义下的最短路算法解决:

    00m1m-1 看作图中的节点对于该颜色的每个糖豆 (w,c)(w, c),从每个节点 uu(u+w)modm(u+w) \bmod m 连边,边权为 cc用 Dijkstra 算法求从 00 出发到各点的最短路

    第二步:合并所有颜色

    dp[i][r]dp[i][r] 表示前 ii 种颜色总重量模 mmrr 的最小花费。初始:dp[0][0]=0dp[0][0] = 0,其余为无穷大转移:对于第 ii 种颜色,枚举当前余数 jj 和该颜色能提供的余数 rr:dp[i][(j+r) mod m]=min(dp[i][(j+r) mod m],dp[i−1][j]+fi[r]) dp[i][(j+r)modm]=min(dp[i][(j+r)modm],dp[i−1][j]+fi[r])

    最终 dp[k][r]dp[k][r] 就是答案。

    • 1

    信息

    ID
    3427
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者