hdu 2602 Bone Collector 坑爹01背包
来源:互联网 发布:苹果mac切换系统 编辑:程序博客网 时间:2024/06/05 11:44
基本的01背包:但有个地方特坑爹,骨头可以体积为0,价值不为零,用二维数组写,仅仅差了一个数字,交了几次都WA,一维和二维差别很小。
1,体积循环二维背包从零到n,一维从n到0。
2.二维中的dp[I][j]相当于一维的dp[j],d[I-1][j-w[I]]相当于d[j-w[I]]
二维:
#include<iostream>#include<string.h>using namespace std;const int N = 1000;int dp[N+1][N+1];int n,v;int c[N+1],w[N+1];void pack(){memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++)for(int j=0;j<=v;j++){if(j<w[i])dp[i][j] = dp[i-1][j];else{dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]]+c[i]);}}cout<<dp[n][v]<<endl;}int main(){int t;cin>>t;while(t--){cin>>n>>v;for(int i=1;i<=n;i++)cin>>c[i];for(int i=1;i<=n;i++)cin>>w[i];pack();}}
一维:
#include<iostream>#include<string.h>using namespace std;const int N = 1000;int dp[N+1];int n,v;int c[N+1],w[N+1];void pack(){memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++)for(int j=v;j>=0;j--){if(j<w[i])dp[j] = dp[j];else{dp[j] = max(dp[j-w[i]]+c[i],dp[j]);}}cout<<dp[v]<<endl;}int main(){int t;cin>>t;while(t--){cin>>n>>v;for(int i=1;i<=n;i++)cin>>c[i];for(int i=1;i<=n;i++)cin>>w[i];pack();}}
0 0
- hdu 2602 Bone Collector 坑爹01背包
- hdu 2602 (01 背包)Bone Collector
- hdu 2602 Bone Collector 01背包
- hdu 2602 Bone Collector 01背包
- hdu 2602 Bone Collector (01背包)
- hdu 2602 Bone Collector【01背包】
- hdu 2602 Bone Collector 简单01背包
- hdu 2602 Bone Collector(01背包)
- hdu 2602 Bone Collector (01背包)
- HDU 2602 Bone Collector(裸01背包)
- HDU 2602 Bone Collector( 01背包 )
- HDU 2602 Bone Collector(01背包)
- hdu 2602 Bone Collector 01背包
- HDU 2602 Bone collector 01背包
- hdu 2602 Bone Collector (01背包 )
- hdu 2602 Bone Collector (01背包)
- HDU 2602 Bone Collector (01背包)
- HDU--2602 -- Bone Collector [01背包]
- poj 2253 floyd变形
- theano + keras 安装
- Python文件运行出错:SyntaxError: unindent does not match any outer indentation level
- 程序员的自我修养
- Android Studio混淆模板及常用第三方混淆(看了都说好)
- hdu 2602 Bone Collector 坑爹01背包
- jQuery基础语法
- VS2013 编译程序时提示 无法查找或打开 PDB 文件
- VS2015 编译生成C#的DLL文件,并调用
- 第八周--计数的模式匹配
- 本程序说明了如何建立一个可以接收UDP客户端数据的UDP 服务器
- HTML基础之头标签笔记
- 模式与非模式对话框
- [随记]Spring一部分注解的使用