hdu 2602 01背包
来源:互联网 发布:电脑网络有时有有时没 编辑:程序博客网 时间:2024/05/21 19:35
题目链接:传送门
参考博客:点击打开链接
能理解递推关系式但对代码不是很理解。。
#include<iostream>#include<cstring>#define maxn 1005using namespace std;int dp[maxn][maxn],a[maxn],v[maxn]; int main(){int i,j,t,n,vn; while(cin>>t) { while(t--) { memset(dp,0,sizeof(dp)); cin>>n>>vn; for(i=1;i<=n;i++) cin>>a[i]; for(j=1;j<=n;j++) cin>>v[j]; for(i=1;i<=n;i++) { for(j=0;j<=vn;j++) { if(j>=v[i])dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+a[i]); else dp[i][j]=dp[i-1][j]; } } cout<<dp[n][vn]<<endl; } }}
空间优化后的
#include<iostream>#include<cstring>#define maxn 1005using namespace std;int dp[maxn],a[maxn],v[maxn];int main(){int i,j,t,n,vn; while(cin>>t) { while(t--) { memset(dp,0,sizeof(dp)); cin>>n>>vn; for(i=1;i<=n;i++) cin>>a[i]; for(j=1;j<=n;j++) cin>>v[j]; for(i=1;i<=n;i++) for(j=vn;j>=v[i];j--) dp[j]=max(dp[j],dp[j-v[i]]+a[i]); cout<<dp[vn]<<endl; } }}
阅读全文
0 0
- HDU 2602 01背包
- 01背包 HDU 2602
- HDU 2602 01背包
- hdu 2602 01背包
- hdu 2602 01背包
- hdu 2602 01背包
- hdu 2602 背包问题之01背包
- 刷背包之01背包- HDU 2602
- hdu 2602 01背包,hdu 1114 完全背包
- DP 01背包 hdu 2602
- hdu 2602 DP 01背包
- hdu 2602 01背包DP
- hdu 2602 大水01背包
- hdu 2602 (01背包)
- hdu 2602(01背包)
- hdu 2602(01背包)
- HDU 2602(01背包)
- hdu 2602 基础01背包
- Gradle2.0用户指南翻译——第三章. 教程
- 数据结构总复习
- 各种主流 SQLServer 迁移到 MySQL 工具对比
- 如何分析解决Android ANR
- snmp服务中snmpwalk命令常用方法总结
- hdu 2602 01背包
- Til the Cows Come Home
- 复选框的实现(CheckBox和MenuItemImage)
- Android Studio快捷键——编辑篇
- Mk文件语法规则
- HDU-1879-继续畅通工程
- Cocos2dx中AppDelegate生命周期
- Codeforces Round #427 (Div. 2)-D(记忆化搜索)
- JQuery/js中如何判断字符串为null值