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

leetcode 1155. 掷骰子等于目标和的方法数

题目如下
在这里插入图片描述

数据范围
在这里插入图片描述

显然本题可以使用动态规划
令f(i,j)为投掷i次骰子走到j处的方法数
则f(i,j) = f(i - 1,j - 1) + f(i,j - 2) + ..... + f(i,j - k)
所以可以利用一个二维数组计算来转移。
但是由于每次计算都只会用到上一行的数据,
所以可以利用滚动数组的思想从后往前更新减少空间复杂度。

通过代码

class Solution {
public:
    int numRollsToTarget(int n, int k, int target) {
        if (n * k < target)
            return 0;
        if (n * k == target)
            return 1;
        if(n == 1)return 1;
        vector<int> dp(target + 1,0);
        for(int i = 1;i <= min(k,target);i++)dp[i] = 1;    
        int mod = 1e9 + 7;
        
        for (int i = 1; i < n; i++) {
            for (int j = target; j >= 1; j--) {
                dp[j] = 0;
                for (int l = 1; l <= k; l++) {
                    if (j > l) {
                        dp[j] = (dp[j] + dp[j - l]) % mod;
                    }
                }
            }
        }
        return dp[target];
    }
};

在这里插入图片描述

http://www.dtcms.com/a/27811.html

相关文章:

  • AIGC训练效率与模型优化的深入探讨
  • redis的缓存击穿,雪崩,穿透
  • 大模型微调解读及参数设置实践示例
  • Python 正则表达式的非捕获组介绍
  • 亲测Windows部署Ollama+WebUI可视化
  • 2024年国赛高教杯数学建模A题板凳龙闹元宵解题全过程文档及程序
  • 在nodejs中使用ElasticSearch(二)核心概念,应用
  • 从面试中的“漏掉步骤”谈自我表达与思维方式的转变
  • 【设计模式】【创建型模式】工厂方法模式(Factory Methods)
  • LeetCodehot 力扣热题100
  • Qt5 C++ TcpSocket 如何判断是服务主动断开tcp socket连接?
  • Django 5实用指南(五)模板系统
  • 如何在 Mac 上安装并配置 JDK 环境变量
  • [AHOI2018初中组] 分组---贪心算法
  • 『ob』obsidian文件导出:使用Pandoc插件实现多格式转换
  • Leetcode63:不同路径 II
  • Oracle EBS 12.1和APEX 集成时 Apache的配置代理
  • OpenAI ChatGPT在心理治疗领域展现超凡同理心,通过图灵测试挑战人类专家
  • win 应用程序无法正常启动(0xc0000142)。请单击确定关闭应用程序
  • 使用Flink Operator部署Flink on k8s方案
  • QT多线程编程基础
  • Nginx(详解以及如何使用)
  • Transformer Decoder 详解
  • 计算机之从入门到精通(From Beginner to Proficient in Computer Science)
  • Qt/C++面试【速通笔记一】
  • 一只企鹅如何改变世界
  • 【Linux C/C++开发】Linux系统轻量级的队列缓存mqueue
  • PassGPT:基于大型语言模型的密码建模和(引导式)生成
  • 【Linux】【网络】不同子网下的客户端和服务器通信
  • PHP+Apache+MySQL安装(Windows)