首页 > 其他分享 >动态规划-----完全背包问题

动态规划-----完全背包问题

时间:2022-11-30 23:09:28浏览次数:53  
标签:背包 int max void ----- solve 1005 动态 dp




完全背包问题

​https://www.acwing.com/problem/content/3/​

动态规划-----完全背包问题_完全背包

动态规划-----完全背包问题_完全背包_02



与01背包不同的是,每个物品可以选取无穷多个。因此思考方式可以在01背包的基础上进行调整,把选择该物品的状态划分继续细分即可。

动态规划-----完全背包问题_完全背包_03



朴素O(n^3)代码:

int dp[1005][1005], w[1005], v[1005];
void solve(){
int N, V;
cin >> N >> V;
for(int i = 1; i <= N; i ++) cin >> v[i] >> w[i];

for(int i = 1; i <= N; i ++){
for(int j = 0; j <= V; j ++){
dp[i][j] = dp[i - 1][j];
for(int k = 1; k * v[i] <= j; k ++){
dp[i][j] = max(dp[i][j], dp[i - 1][j - k * v[i]] + k * w[i]);
} //此处是dp[i][j]

}
}
cout << dp[N][V];

可以把不选归纳到k=0的情况。

k=0时,dp[i][j] = max(dp[i][j], dp[i-1][j-0] + 0);

void solve(){

int N, V;
cin >> N >> V;
for(int i = 1; i <= N; i ++) cin >> v[i] >> w[i];

for(int i = 1; i <= N; i ++){
for(int j = 0; j <= V; j ++){
for(int k = 0; k * v[i] <= j; k ++){
dp[i][j] = max(dp[i][j], dp[i - 1][j - k * v[i]] + k * w[i]);
}

}
}
cout << dp[N][V];

}


但是!这样做会超时!

需要考虑优化。



动态规划-----完全背包问题_01背包_04

void solve(){

int N, V;
cin >> N >> V;
for(int i = 1; i <= N; i ++) cin >> v[i] >> w[i];

for(int i = 1; i <= N; i ++){
for(int j = 0; j <= V; j ++){
dp[i][j] = dp[i - 1][j];
if(j >= v[i])
dp[i][j] = max(dp[i][j], f[i][j - v[i]] + w[i]);
}
}
cout << dp[N][V];

}








标签:背包,int,max,void,-----,solve,1005,动态,dp
From: https://blog.51cto.com/u_15389271/5900697

相关文章

  • BoCloud博云入选2018-2019中国PaaS市场研究报告
    近日,中国权威ICT研究咨询机构计世资讯发布了《2018~2019年中国PaaS市场现状与发展趋势研究报告》。报告显示,在2018年中国PaaS厂商市场份额中,BoCloud博云占比5.3%,位居前十,在......
  • R6PL - Harbinger vs Sciencepal题解
    R6PL-HarbingervsSciencepal题面翻译彩虹6是大学里非常流行的游戏。你的两个朋友小A和小B是优秀的玩家,他们想要参与竞争。所以他们决定组建自己的团队。有2*N的......
  • 如何让 vscode remote-ssh 连接上 virtualbox ubuntu?
    首先第一部分:让宿主机win10和虚拟机ubuntu能互相ping通,且虚拟机能够访问互联网参考教程1:https://amit-dhawan.medium.com/ping-virtual-box-guest-from-windows-host-361d......
  • 【221130-1】抛物线顶点为P(1,4),与y轴交于C(0,3),与x轴交于点A,B。求抛物线的解析式?
    ......
  • Flask--入门
    flask是啥是python语言的一个web框架。。轻量级。。可扩展。flaskhelloworldfromflaskimportFlaskapp=Flask(__name__)@app.route("/")defindex():re......
  • 实验四 Web服务器1-socket编程
    任务详情基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:time服务器的客户端服务器,提交程序运行截图echo服务器的客户端服务器,提交程序运行截图,服务器把客......
  • KDOI-3还原数据题解
    「KDOI-03」还原数据题目描述小E正在做一道经典题:给定一个长度为\(n\)的序列\(a\)和\(q\)个操作,操作共有\(2\)种类型:\(\tt{1~l~r~x}\):对于所有\(l\lei\le......
  • 北京工业大学研究生-研究生-渣男姚一薄
       北京工业大学研究生研究生研二建筑设计部他让我给他花钱。还跟他前女友在一起这傻逼 还去我家见家长有记录的就八千多实体店我还没算账他对象没分手一直......
  • 实验四-Web服务器2
    一、任务详情基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:1.Web服务器的客户端服务器,提交程序运行截图2.实现GET即可,请求,响应要符合HTTP协议规范3.服务......
  • 20-初识内部类
    类的五大成员什么是内部类内部类的应用场景小结......