Oi_oier 2022-08-28 10:26 采纳率: 83.3%
浏览 185
已结题

关于#c++#的问题:砝码问题

n种砝码,每种两粒,小胖至少要采购mg的砝码重量,求有多少种方法
输入:7//n
1 2 3 4 5 10 20
88//mg
输出:4
(这是搜索吗,可是怎么搜,搜哪里
求解题思路和伪代码

  • 写回答

6条回答 默认 最新

  • liu_zhоu 2022-08-29 20:15
    关注

    这种求解方案的问题可以用深搜(可以用记忆化来优化,这里讲最基础的)

    每一步需要枚举当前可用的砝码,然后将当前砝码标记为已用,并计入总重量,再进入下一步枚举。当总重量大于等于m就是边界条件,则可用方案数加一。

    sum = 0
    fama[n+1]//第i种砝码重量
    flag[2n+1]//值表示当前编号的砝码是否可用,初始值为1,表示均可用
    dfs(int ww = 0){
        if(ww >= m) {//达到条件,方案数加一
            sum++
            return
        }
        for(int i = 1; i <= n * 2;i++) {//对于第k种砝码,它两个砝码的编号分别为2k-12k
            if flag[i] {//如果当前砝码可用
                flag[i] = 0//标记为已经使用
                dfs(ww + fama[i])//并考虑使用当前砝码的情况,在ww基础上加上当前砝码重量
                flag[i] = 1//讨论完后,将当前砝码标记为未经使用
            }
        }
        return
    }
    

    若有疑惑请提出
    望采纳awa

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 赞助了问题酬金10元 8月28日
  • 专家修改了标签 8月28日
  • 展开全部

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64