首页 > 代码库 > HDU 2602 (简单的01背包) Bone Collector
HDU 2602 (简单的01背包) Bone Collector
很标准的01背包问题
1 //#define LOCAL 2 #include <algorithm> 3 #include <cstdio> 4 #include <cstring> 5 using namespace std; 6 7 const int maxn = 1000 + 10; 8 int w[maxn], v[maxn], dp[maxn]; 9 10 int main(void)11 {12 #ifdef LOCAL13 freopen("2602in.txt", "r", stdin);14 #endif15 16 int T;17 scanf("%d", &T);18 while(T--)19 {20 int n, V;21 scanf("%d%d", &n, &V);22 for(int i = 0; i < n; ++i)23 scanf("%d", &w[i]);24 for(int i = 0; i < n; ++i)25 scanf("%d", &v[i]);26 memset(dp, 0, sizeof(dp));27 for(int i = 0; i < n; ++i)28 for(int j = V; j >= v[i]; --j)29 dp[j] = max(dp[j], dp[j-v[i]] + w[i]);30 printf("%d\n", dp[V]);31 }32 return 0;33 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。