首页 > 其他分享 >多重背包问题

多重背包问题

时间:2024-12-06 09:32:39浏览次数:5  
标签:多重 背包 int max 问题 dp first

#include<bits/stdc++.h>
using namespace std;
#define N  10001
int m,n,t;
int dp[N];
vector<pair<int,int>>v[N];

int main() 
{
    cin>>m>>n;
    int a,b,x;
    for(int i=1;i<=n;i++)
    {
        cin>>a>>b>>x;
        t=max(t,x);
        v[x].push_back(make_pair(a,b));
    }
    for(int i=1;i<=t;i++)
    {
        for(int k=m;k>=0;k--)
        for(int j=0;j<v[i].size();j++)   
            {
                if(k>=v[i][j].first)
                {
                    dp[k]=max(dp[k],dp[k-v[i][j].first]+v[i][j].second);
                }
            }
    }
    cout<<dp[m]<<endl;
}

背包空间由大到小,实现了dp[k-v[i][j].first]都是上一次i计算出的,即实现了每个种类只拿一个的约束。

标签:多重,背包,int,max,问题,dp,first
From: https://www.cnblogs.com/Arc-ux/p/18589924

相关文章

  • 运筹学笔记——对偶线性规划问题
    上一章节的线性规划学习基本完成,进入下一章对偶问题的学习(部分笔记以及实例从书上摘录,仅供复习参考)一、情景引入某厂在计划期内要安排生产1、2两种产品,需要用到劳动力设备以及A和B两种原材料。期望生产两种产品得到最大利润产品1产品2资源限额劳动力84360工时设备45200台......
  • 解决mapper重名问题
    问题公司有一个集成开发平台,导入数据库表会自动生成实体类、mapper和xml等文件,这是一件很方便的事,可以省去很多没有技术性的重复工作。但是最近我在使用这个平台的时候遇到了一个问题,那就是mapper冲突问题。当老表进行导入的时候,会生成与之前项目中已有mapper一样的名字,比如原项......
  • 【嵌入式】-VMware-Ubuntu-Linux- 基础指令 | 使用工具安装 | 常见问题
    ### 本篇博客主要记录我在学习过程中用到的比较好的工具以及遇到的一些问题及解决办法。###   目录一、常用Shell命令及快捷键##shell命令##文件操作快捷键二、VIM编辑器三、OpenVMTools安装(1)更新软件包列表(2)安装open-vm-tools-desktop(3)安装必要的依赖项......
  • 电商项目-微服务网关使用的问题
    一、微服务网关跨域问题项目采用前后端分离架构,前段存在自己的前段系统,并且会单独部署,同样后端系统也都是单独部署,这样就一定存在跨域问题。可以在controller类上添加注解来进行解决,但是现在的访问都是基于网关进行操作,所以还需要在网关系统上对跨域问题进行解决......
  • Profinet转EtherNet/IP网关是如何解决西门子S7-1500PLC与AB PLC的通讯问题的
    一、案例背景在一个工业现场,一端是AB的PLC,IP地址192.168.1.20;另一端西门子是S7-1500系列,IP地址192.168.2.248。AB的PLC内有B3、N7、F8三个寄存器文件涉及到通讯,分别对应西门子PLC的M、DB1、DB2三个存储区域。通过捷米特网关的参数设置软件进行配置,配置完成后下载重启,再......
  • C++算法练习-day60——78.子集问题
    题目来源:.-力扣(LeetCode)题目思路分析题目要求找出给定数组的所有子集(幂集)。子集是指原数组中任意元素组合形成的数组,包括空集和原数组本身。这个问题可以通过回溯算法(Backtracking)来解决。回溯算法是一种通过探索所有可能的候选解来找出所有解的算法。对于子集问题,我们可以......
  • Qt5.15新建类报错是大小写问题吗?
    新建类小写,报错.cpp中头文件缺失,或者构造函数缺失kimi答案如果自定义的类名为Command,并且它是小写的,那么它默认情况下并不会继承自QObject。在Qt中,继承自QObject的类可以获得许多Qt框架提供的特性,比如信号和槽机制、事件处理、以及动态属性系统等。如果你希望Command类拥有这些......
  • 利用自监督学习解决二级类中出现的长尾问题
    文章目录概要自监督学习知识蒸馏自监督+知识蒸馏核心代码相关文献概要为了提高机械臂采摘苹果的效率,需要对可采摘苹果进行精准识别。通过对苹果、树叶、树枝以及它们之间的空间关系进行细致分析,我们将苹果识别问题细分为八个类别,由此引发了类别间数量严重不......
  • linux系统修改数据存储目录导致mysql服务无法启动的问题
    在Linux系统上,安装好并启动mysql后,如果需要移动数据目录(通常是需要将数据目录移动到数据盘挂载点目录下),通常是一下几个步骤:1:停止mysql服务servicemysqlstop2:复制原数据目录到目标新目录cp-rp/var/lib/mysql/data/my_new_data_folder【-rp表示携带原有文件的权限属性到新......
  • 【Linux工作记录】记录consul注册发现的标签问题
    问题展示:问题描述:在通过consul进行注册的时候然后在Prometheus中进行登记在之后在grafana中进行jvm模板添加之后一般情况下就可以获取查看到我们jvm的监控数据今天的情况是:在进行上面的步骤之后发现application对应的标签没有数据验证:在consul的ui界面中发现是有数据的排查:......