当前位置: 首页 > news >正文

leetcode 2787. Ways to Express an Integer as Sum of Powers

题目描述

这道题是0-1背包问题。可以理解为,有一个最大容量是n的背包,有n个物品,第i个物品的重量是i^x,问装满背包有多少种装法。题目要求必须是互不相同的数的x次幂的和等于n,那就表示每个数只能用一次,也就是每个物品只有一个,所以这个问题是0-1背包问题。

 

class Solution {
public:
    int numberOfWays(int n, int x) {
     //从[1,n]选若干个数使得这些数的x次幂之和等于j,dp[j]表示选法数量
     //初始情况,没有数可选,j>=1时,无法选择数字凑成总和等于j,因此dp[j](j>=1)应该初始化为0
     vector<long long> dp(n+1,0);//使用int类型,会报整数溢出错误
     //初始情况,没有数可选,要想凑成总和为0只有一种选法,那就是一个数也不选,不选也是一种选法
     //所以dp[0]应该初始化为1
     dp[0] = 1;
     for(int i = 1;i <= n;i++){//对数字遍历,即对物品遍历
        for(int j = n;j >= pow(i,x);j--){//对总和遍历,即对容量遍历
            dp[j] = dp[j] + dp[j-pow(i,x)];//使用滚动数组
        }
     }
     int mod = (int)1e9+7;
     return dp[n]%mod;
    }
};

相关文章:

  • 【MQTT-协议原理】
  • [ARC196A] Adjacent Delete 题解
  • 具身机器人中AI(DEEPSEEK)与PLC、驱动器协同发展研究:突破数据困境与指令精确控制(3)
  • 【学习笔记】两个类之间的数据交互方式
  • 01-libVLC的视频播放器:环境搭建以及介绍
  • 智能资源管理机制-重传机制
  • 使用DaemonSet部署集群守护进程集
  • 用链表、信号,实现简易MP3项目
  • Docker 安装MySQL
  • 网页布局汇总
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(十三) -> ArkTS/TS代码重构
  • 基础算法训练7
  • leetcode572 另一棵树的子树
  • React 组件样式
  • (已解决)如何安装python离线包及其依赖包 2025最新
  • 计算机操作系统——死锁(详细解释和处理死锁)
  • 编译原理 实验二 词法分析程序自动生成工具实验
  • 解决 Ubuntu 上 Docker 安装与网络问题:从禁用 IPv6 到配置代理
  • 【微知】如何将echo某个数据到文件然后cat出来结合在一起输出?(echo 1 | tee filea; cat fileb | tee fila)
  • 【图像生成之22】CVPR024—SwiftBrush基于变分分数蒸馏的文生图扩散模型
  • 网站在线客服插件代码/北京今日重大新闻
  • 中山网站建设华联在线/搜索引擎优化论文
  • 一件代发供应链/网站优化的意义
  • 中国做网站的网站/优秀软文营销案例
  • 抽奖网站怎么制作/新产品推广方案策划
  • 建网站 陕西牛人网络科技/十大免费cms建站系统介绍