首页 > 其他分享 >Leetcode2585. 获得分数的方法数

Leetcode2585. 获得分数的方法数

时间:2023-05-25 22:11:43浏览次数:40  
标签:分数 target int 题解 Leetcode2585 方法 types

题解

多重背包的模板
f[i][j]表示前i种题目得分为j的方案数
f[i][j] += f[i-1][j-kw]
再将空间优化为1维

class Solution {
    public int waysToReachTarget(int target, int[][] types) {
        int n = types.length, MOD = (int) 1e9 + 7, INF = 0x3f3f3f3f;
        int[] f = new int[target + 1];
        f[0] = 1;
        for(int i = 0; i < n; i++){
            int s = types[i][0], w = types[i][1];
            for(int j = target; j >= w; j--){
                for(int k = 1; k <= s && k * w <= j; k++){
                    f[j] += f[j - k * w];
                    f[j] %= MOD;
                }
            }
        }
        return f[target];
    }
}

标签:分数,target,int,题解,Leetcode2585,方法,types
From: https://www.cnblogs.com/tobuv/p/17433125.html

相关文章

  • ffprobe提取元数据信息时可以提升提取速度的方法
    ffprobe-probesize1048576-analyzeduration1000000加入-probesize2048576-analyzeduration,5000以后可以提升20%,`-analyzeduration`是ffprobe的选项之一,用于指定解析器在分析媒体文件时所需的时长。当ffprobe分析媒体文件时,它会扫描文件的一部分以获取必要的元数据......
  • rabbitmq中的queueDeclare方法
    queueDeclareQueue.DeclareOkqueueDeclare()throwsIOException;/***Declareaqueue*@seecom.rabbitmq.client.AMQP.Queue.Declare*@seecom.rabbitmq.client.AMQP.Queue.DeclareOk*@paramqueuethenameofthequeue*@param......
  • RabbitMQ消费消息方法basicConsume
    RabbitMQ-消费消息 Address[]addresses=newAddress[]{newAddress(IP_ADDRESS,PORT)};/***1.建立连接工厂*/ConnectionFactoryconnectionFactory=newConnectionFactory();connectionFactory.setUsername(USER_NAME);......
  • 关于linux系统中umask值的说明-以及计算转换成默认权限符号的方法
    关于linux系统中的umask值,我们可以通过man手册的解释为:Theuserfile-creationmaskissettomode简单的理解,就是用户的umask的值决定着文件(也包括目录)创建时的默认权限,对于root用户来说,一般为0022[root@qq-5201351~]#umask0022这样可能还是不能很直观的表达出,可以通过......
  • 将真分数分解为埃及分数
    现输入一个真分数,请将该分数分解为埃及分数。#include<iostream>usingnamespacestd;intmain(){ inta,b,c; cout<<"请分别输入一个真分数的分母和分子:"<<endl; cin>>a>>b; cout<<"分解成埃及分数为:"; while(1) { if(b%a) { c=b/a+1; } else { c=b......
  • JAVA List和Map切割方法
    importorg.springframework.util.CollectionUtils;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Set;publicclassCollectionUtil{/***将map切成段,作......
  • 恒创科技:5种易实现的Linux和 Windows VPS速度提升方法
    ​无论是LinuxVPS还是WindowsVPS,网站速度的提高都是非常重要的。它们在提高网站速度方面都有很多的优化方法。下面我们将介绍5种提高网站速度的方法。1.通过缓存加速缓存通常是用来加快商业网站加载时间的技术,因此它也可以用在VPS上。没有它,不断的静态文件请......
  • Windows系统下设置cmd命令行(终端)走代理的方法
     根据代理软件查看对应端口号(因为可能不是缺省端口号) 这里我本地代理的端口号是10792,下一步设置记得修改端口号与此对应。#有些朋友好像为什么设置http和socket5其实设置哪种都是可以的,具体看你们自己代理软件都支持的协议有哪些,就可以了#记得修改端口号,比如我的是10792,记......
  • Python集合 (set) 的增删改查及 copy()方法
    集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:1、去重,把一个列表变成集合,就自动去重了。2、关系测试,测试两组数据之前的交集、差集、并集等关系。一、集合的创建set1=set({1,2......
  • 0-1背包问题详解-动态规划-两种方法
    问题描述:给定n种物品和一背包。物品i的重量为wi,其价值为vi,背包容量为c。问应如何选择装入背包中的物品,使得背入背包的物品的总价值最大?解析:此问题形式化的描述是,给定c>0,wi,vi,1<=i<=n(c为背包容量),要找出一个n元0-1向量(x1,x2,...,xn),xi ∈{0,1},1<=i<=n,使......