查看: 1537| 回复: 1
跳转到指定楼层
上一主题 下一主题
收起左侧

[动态规划] [求助背包问题]非常蛋疼的一直wrong answer,还没有test case

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
来自hihocoder经典的背包问题 https://hihocoder.com/problemset/problem/1038
我看了下别人的思路,自己尝试着写了下,但一直是wrong answer, 本地测试的case都过了,求助!!

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;

  4. int backpack(vector<int>& w, vector<int>& v, int c)
  5. {
  6.     vector<vector<int>> dp(w.size()+1, vector<int>(c+1,0));
  7.     for(int i=0;i<=c;i++)
  8.         dp[0][i] = 0;
  9.     for(int idx=0;idx<=w.size();idx++)
  10.         dp[idx][0] = 0;
  11.     for(int idx=1;idx<=w.size();idx++)
  12.     {
  13.         for(int j=1;j<=c;j++)
  14.         {
  15.             dp[idx][j] = dp[idx-1][j];
  16.             if(j-w[idx-1] >= 0)
  17.                 dp[idx][j] = max(dp[idx][j], v[idx-1] + dp[idx-1][j-w[idx-1]]);
  18.         }
  19.     }
  20.     return dp[w.size()][c];
  21. }

  22. int main()
  23. {
  24.     int i,c;
  25.     cin >> i >>c;
  26.     vector<int> w(i,0),v(i,0);
  27.     for(int j=0;j<i;j++)
  28.     {
  29.         cin >> w[j] >> v[j];
  30.     }
  31.     cout << backpack(w,v,c) << endl;
  32. }
复制代码


上一篇:刷了数十题的新手请教一些问题
下一篇:已知NLogN的值,有没有O(1)的方法求得N?
🔗
 楼主| plugin1689 2019-5-19 22:36:10 | 只看该作者
全局:
sorry, 这一版的代码过了,之前有个边界条件没处理好。大家忽略这个帖子吧,发错了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表