{"id":520,"date":"2023-04-15T16:02:43","date_gmt":"2023-04-15T08:02:43","guid":{"rendered":"http:\/\/120.55.184.7\/?p=520"},"modified":"2025-04-16T00:44:23","modified_gmt":"2025-04-15T16:44:23","slug":"%e8%83%8c%e5%8c%85%e9%97%ae%e9%a2%98","status":"publish","type":"post","link":"https:\/\/beijian99.top\/?p=520","title":{"rendered":"\u80cc\u5305\u95ee\u9898"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u4e00\u3001\u80cc\u5305\u95ee\u9898\u6982\u8ff0<\/h2>\n\n\n\n<p>\u80cc\u5305\u95ee\u9898(Knapsack Problem)\u6e90\u4e8e\u4e00\u4e2a\u7b80\u5355\u573a\u666f\uff1a\u5047\u8bbe\u4f60\u6709\u4e00\u4e2a\u5bb9\u91cf\u6709\u9650\u7684\u80cc\u5305\uff0c\u9700\u8981\u4ece\u4e00\u7cfb\u5217\u7269\u54c1\u4e2d\u9009\u62e9\u4e00\u4e9b\u653e\u5165\u80cc\u5305\u3002\u6bcf\u4e2a\u7269\u54c1\u90fd\u6709\u81ea\u5df1\u7684\u91cd\u91cf\u548c\u4ef7\u503c\uff0c\u76ee\u6807\u662f\u5728\u4e0d\u8d85\u8fc7\u80cc\u5305\u5bb9\u91cf\u7684\u524d\u63d0\u4e0b\uff0c\u6700\u5927\u5316\u80cc\u5305\u4e2d\u7269\u54c1\u7684\u603b\u4ef7\u503c\u3002<\/p>\n\n\n\n<p>\u6839\u636e\u7269\u54c1\u7684\u9009\u53d6\u89c4\u5219\uff0c\u80cc\u5305\u95ee\u9898\u4e3b\u8981\u5206\u4e3a\u4e09\u79cd\u7c7b\u578b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>01\u80cc\u5305\u95ee\u9898<\/strong>\uff1a\u6bcf\u4e2a\u7269\u54c1\u53ea\u80fd\u9009\u62e9\u4e00\u6b21\uff0c\u8981\u4e48\u653e\u5165\u80cc\u5305\uff0c\u8981\u4e48\u4e0d\u653e\u5165<\/li>\n\n\n\n<li><strong>\u5b8c\u5168\u80cc\u5305\u95ee\u9898<\/strong>\uff1a\u6bcf\u4e2a\u7269\u54c1\u53ef\u4ee5\u65e0\u9650\u6b21\u653e\u5165\u80cc\u5305<\/li>\n\n\n\n<li><strong>\u591a\u91cd\u80cc\u5305\u95ee\u9898<\/strong>\uff1a\u6bcf\u4e2a\u7269\u54c1\u6709\u56fa\u5b9a\u7684\u6570\u91cf\u9650\u5236<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e8c\u300101\u80cc\u5305<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u95ee\u9898\u63cf\u8ff0<\/h3>\n\n\n\n<p>\u7ed9\u5b9a\u4e00\u4e2a\u5bb9\u91cf\u4e3aW\u7684\u80cc\u5305\u548cN\u4e2a\u7269\u54c1\uff0c\u6bcf\u4e2a\u7269\u54c1\u6709\u91cd\u91cfw_i\u548c\u4ef7\u503cv_i\u3002\u6c42\u5728\u4e0d\u8d85\u51fa\u80cc\u5305\u5bb9\u91cf\u7684\u60c5\u51b5\u4e0b\uff0c\u80fd\u88c5\u5165\u80cc\u5305\u7684\u6700\u5927\u4ef7\u503c\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u52a8\u6001\u89c4\u5212\u89e3\u6cd5<\/h3>\n\n\n\n<p>01\u80cc\u5305\u95ee\u9898\u901a\u5e38\u91c7\u7528\u52a8\u6001\u89c4\u5212(Dynamic Programming)\u6765\u89e3\u51b3\uff0c\u5176\u6838\u5fc3\u601d\u60f3\u662f\u5c06\u95ee\u9898\u5206\u89e3\u4e3a\u5b50\u95ee\u9898\uff0c\u5e76\u901a\u8fc7\u5b58\u50a8\u5b50\u95ee\u9898\u7684\u89e3\u6765\u907f\u514d\u91cd\u590d\u8ba1\u7b97\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u72b6\u6001\u5b9a\u4e49<\/h4>\n\n\n\n<p>\u5b9a\u4e49\u4e8c\u7ef4\u6570\u7ec4<code>dp[i][j]<\/code>\uff0c\u8868\u793a\u524di\u4e2a\u7269\u54c1\u5728\u5bb9\u91cf\u4e3aj\u7684\u80cc\u5305\u4e0b\u80fd\u83b7\u5f97\u7684\u6700\u5927\u4ef7\u503c\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u72b6\u6001\u8f6c\u79fb\u65b9\u7a0b<\/h4>\n\n\n\n<p>\u5bf9\u4e8e\u6bcf\u4e2a\u7269\u54c1i\uff0c\u6709\u4e24\u79cd\u9009\u62e9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4e0d\u9009\u62e9\u7b2ci\u4e2a\u7269\u54c1\uff1a<code>dp[i][j] = dp[i-1][j]<\/code><\/li>\n\n\n\n<li>\u9009\u62e9\u7b2ci\u4e2a\u7269\u54c1\uff08\u524d\u63d0\u662fj \u2265 w_i\uff09\uff1a<code>dp[i][j] = dp[i-1][j-w_i] + v_i<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u56e0\u6b64\uff0c\u72b6\u6001\u8f6c\u79fb\u65b9\u7a0b\u4e3a\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\ndp&#x5B;i]&#x5B;j] = \\max(dp&#x5B;i-1]&#x5B;j], dp&#x5B;i-1]&#x5B;j-w_i] + v_i)\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">C++\u5b9e\u73b0<\/h4>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;algorithm&gt;\nusing namespace std;\n\nint knapsack01(int W, const vector&lt;int&gt;&amp; weights, const vector&lt;int&gt;&amp; values) {\n    int n = weights.size();\n    vector&lt;vector&lt;int&gt;&gt; dp(n + 1, vector&lt;int&gt;(W + 1, 0));\n\n    for (int i = 1; i &lt;= n; i++) {\n        for (int j = 1; j &lt;= W; j++) {\n            if (j &lt; weights&#x5B;i-1]) {\n                dp&#x5B;i]&#x5B;j] = dp&#x5B;i-1]&#x5B;j];\n            } else {\n                dp&#x5B;i]&#x5B;j] = max(dp&#x5B;i-1]&#x5B;j], dp&#x5B;i-1]&#x5B;j-weights&#x5B;i-1]] + values&#x5B;i-1]);\n            }\n        }\n    }\n    return dp&#x5B;n]&#x5B;W];\n}\n\nint main() {\n    int W, n;\n    cout &lt;&lt; &quot;\u8bf7\u8f93\u5165\u80cc\u5305\u5bb9\u91cf\u548c\u7269\u54c1\u6570\u91cf: &quot;;\n    cin &gt;&gt; W &gt;&gt; n;\n\n    vector&lt;int&gt; weights(n), values(n);\n    cout &lt;&lt; &quot;\u8bf7\u8f93\u5165\u6bcf\u4e2a\u7269\u54c1\u7684\u91cd\u91cf\u548c\u4ef7\u503c:&quot; &lt;&lt; endl;\n    for (int i = 0; i &lt; n; i++) {\n        cin &gt;&gt; weights&#x5B;i] &gt;&gt; values&#x5B;i];\n    }\n\n    int maxValue = knapsack01(W, weights, values);\n    cout &lt;&lt; &quot;\u6700\u5927\u4ef7\u503c\u4e3a: &quot; &lt;&lt; maxValue &lt;&lt; endl;\n    return 0;\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">3. \u7a7a\u95f4\u4f18\u5316<\/h3>\n\n\n\n<p>\u89c2\u5bdf\u72b6\u6001\u8f6c\u79fb\u65b9\u7a0b\u53ef\u4ee5\u53d1\u73b0\uff0c<code>dp[i][j]<\/code>\u53ea\u4f9d\u8d56\u4e8e<code>dp[i-1][...]<\/code>\uff0c\u56e0\u6b64\u53ef\u4ee5\u5c06\u4e8c\u7ef4\u6570\u7ec4\u4f18\u5316\u4e3a\u4e00\u7ef4\u6570\u7ec4\uff0c\u964d\u4f4e\u7a7a\u95f4\u590d\u6742\u5ea6\u3002<\/p>\n\n\n\n<p>\u4f18\u5316\u540e\u7684C++\u5b9e\u73b0\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nint knapsack01_optimized(int W, const vector&lt;int&gt;&amp; weights, const vector&lt;int&gt;&amp; values) {\n    int n = weights.size();\n    vector&lt;int&gt; dp(W + 1, 0);\n\n    for (int i = 0; i &lt; n; i++) {\n        for (int j = W; j &gt;= weights&#x5B;i]; j--) {\n            dp&#x5B;j] = max(dp&#x5B;j], dp&#x5B;j - weights&#x5B;i]] + values&#x5B;i]);\n        }\n    }\n    return dp&#x5B;W];\n}\n<\/pre><\/div>\n\n\n<p><strong>\u6ce8\u610f<\/strong>\uff1a\u5185\u5c42\u5faa\u73af\u5fc5\u987b\u4ece\u5927\u5230\u5c0f\u904d\u5386\uff0c\u907f\u514d\u8986\u76d6\u672a\u8ba1\u7b97\u7684\u503c\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e09\u3001\u5b8c\u5168\u80cc\u5305<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u95ee\u9898\u63cf\u8ff0<\/h3>\n\n\n\n<p>\u4e0e01\u80cc\u5305\u4e0d\u540c\uff0c\u5b8c\u5168\u80cc\u5305\u95ee\u9898\u4e2d\u6bcf\u79cd\u7269\u54c1\u6709\u65e0\u9650\u4e2a\u53ef\u7528\u3002\u5373\u5728\u4e0d\u8d85\u8fc7\u80cc\u5305\u5bb9\u91cf\u7684\u524d\u63d0\u4e0b\uff0c\u6bcf\u79cd\u7269\u54c1\u53ef\u4ee5\u9009\u62e9\u591a\u6b21\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u52a8\u6001\u89c4\u5212\u89e3\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u72b6\u6001\u5b9a\u4e49<\/h4>\n\n\n\n<p>\u540c\u6837\u5b9a\u4e49<code>dp[i][j]<\/code>\u4e3a\u524di\u79cd\u7269\u54c1\u5728\u5bb9\u91cf\u4e3aj\u7684\u80cc\u5305\u4e0b\u7684\u6700\u5927\u4ef7\u503c\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u72b6\u6001\u8f6c\u79fb\u65b9\u7a0b<\/h4>\n\n\n\n<p>\u5bf9\u4e8e\u5b8c\u5168\u80cc\u5305\u95ee\u9898\uff0c\u72b6\u6001\u8f6c\u79fb\u65b9\u7a0b\u4e3a\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\ndp&#x5B;i]&#x5B;j] = \\max(dp&#x5B;i-1]&#x5B;j], dp&#x5B;i]&#x5B;j-w_i] + v_i)\n<\/pre><\/div>\n\n\n<p>\u4e0e01\u80cc\u5305\u7684\u533a\u522b\u5728\u4e8e\uff0c\u5f53\u9009\u62e9\u653e\u5165\u7269\u54c1\u65f6\uff0c\u662f\u4ece<code>dp[i][j-w_i]<\/code>\u8f6c\u79fb\u800c\u6765\uff0c\u800c\u4e0d\u662f<code>dp[i-1][j-w_i]<\/code>\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++\u5b9e\u73b0<\/h4>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nint knapsackComplete(int W, const vector&lt;int&gt;&amp; weights, const vector&lt;int&gt;&amp; values) {\n    int n = weights.size();\n    vector&lt;vector&lt;int&gt;&gt; dp(n + 1, vector&lt;int&gt;(W + 1, 0));\n\n    for (int i = 1; i &lt;= n; i++) {\n        for (int j = 1; j &lt;= W; j++) {\n            if (j &lt; weights&#x5B;i-1]) {\n                dp&#x5B;i]&#x5B;j] = dp&#x5B;i-1]&#x5B;j];\n            } else {\n                dp&#x5B;i]&#x5B;j] = max(dp&#x5B;i-1]&#x5B;j], dp&#x5B;i]&#x5B;j-weights&#x5B;i-1]] + values&#x5B;i-1]);\n            }\n        }\n    }\n    return dp&#x5B;n]&#x5B;W];\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">3. \u7a7a\u95f4\u4f18\u5316<\/h3>\n\n\n\n<p>\u540c\u6837\u53ef\u4ee5\u4f18\u5316\u4e3a\u4e00\u7ef4\u6570\u7ec4\uff0c\u4f46\u4e0e01\u80cc\u5305\u4e0d\u540c\u7684\u662f\uff0c\u5185\u5c42\u5faa\u73af\u9700\u8981\u4ece\u5c0f\u5230\u5927\u904d\u5386\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nint knapsackComplete_optimized(int W, const vector&lt;int&gt;&amp; weights, const vector&lt;int&gt;&amp; values) {\n    int n = weights.size();\n    vector&lt;int&gt; dp(W + 1, 0);\n\n    for (int i = 0; i &lt; n; i++) {\n        for (int j = weights&#x5B;i]; j &lt;= W; j++) {\n            dp&#x5B;j] = max(dp&#x5B;j], dp&#x5B;j - weights&#x5B;i]] + values&#x5B;i]);\n        }\n    }\n    return dp&#x5B;W];\n}\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u56db\u3001\u591a\u91cd\u80cc\u5305\u95ee\u9898<\/h2>\n\n\n\n<p>\u591a\u91cd\u80cc\u5305\u95ee\u9898\u662f\u80cc\u5305\u95ee\u9898\u7684\u4e00\u79cd\u6269\u5c55\uff0c\u4e0e01\u80cc\u5305\u548c\u5b8c\u5168\u80cc\u5305\u4e0d\u540c\uff0c\u5728\u591a\u91cd\u80cc\u5305\u95ee\u9898\u4e2d\uff0c\u6bcf\u79cd\u7269\u54c1\u90fd\u6709<strong>\u6570\u91cf\u9650\u5236<\/strong>\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u95ee\u9898\u63cf\u8ff0<\/h3>\n\n\n\n<p>\u7ed9\u5b9a\u4e00\u4e2a\u5bb9\u91cf\u4e3aC\u7684\u80cc\u5305\uff0c\u6709n\u79cd\u7269\u54c1\uff0c\u6bcf\u79cd\u7269\u54c1\u6709\u91cd\u91cfw[i]\u3001\u4ef7\u503cv[i]\u548c\u6570\u91cfs[i]\u3002\u76ee\u6807\u662f\u5728\u4e0d\u8d85\u8fc7\u80cc\u5305\u5bb9\u91cf\u7684\u524d\u63d0\u4e0b\uff0c\u9009\u62e9\u7269\u54c1\u4f7f\u5f97\u603b\u4ef7\u503c\u6700\u5927\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u57fa\u672c\u89e3\u6cd5<\/h3>\n\n\n\n<p>\u591a\u91cd\u80cc\u5305\u7684\u57fa\u672c\u89e3\u6cd5\u662f\u4e09\u91cd\u5faa\u73af\u7684\u52a8\u6001\u89c4\u5212\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nint dp&#x5B;V+1]; \/\/ dp&#x5B;j]\u8868\u793a\u5bb9\u91cf\u4e3aj\u65f6\u7684\u6700\u5927\u4ef7\u503c\nmemset(dp, 0, sizeof(dp));\n\nfor(int i=1; i&amp;lt;=n; i++) { \/\/ \u679a\u4e3e\u7269\u54c1\n    for(int j=V; j&gt;=0; j--) { \/\/ \u679a\u4e3e\u5bb9\u91cf\n        for(int k=1; k&amp;lt;=s&#x5B;i] &amp;amp;&amp;amp; k*w&#x5B;i]&amp;lt;=j; k++) { \/\/ \u679a\u4e3e\u6570\u91cf\n            dp&#x5B;j] = max(dp&#x5B;j], dp&#x5B;j-k*w&#x5B;i]] + k*v&#x5B;i]);\n        }\n    }\n}\n<\/pre><\/div>\n\n\n<p>\u65f6\u95f4\u590d\u6742\u5ea6\u4e3aO(n<em>V<\/em>s)\uff0c\u5f53s\u8f83\u5927\u65f6\u6548\u7387\u8f83\u4f4e\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u4e8c\u8fdb\u5236\u4f18\u5316<\/h3>\n\n\n\n<p>\u901a\u8fc7\u4e8c\u8fdb\u5236\u62c6\u5206\u5c06\u591a\u91cd\u80cc\u5305\u8f6c\u5316\u4e3a01\u80cc\u5305\u95ee\u9898\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nvector&amp;lt;pair&amp;lt;int, int&gt;&gt; items; \/\/ \u5b58\u50a8\u62c6\u5206\u540e\u7684\u7269\u54c1(\u91cd\u91cf,\u4ef7\u503c)\n\nfor(int i=1; i&amp;lt;=n; i++) {\n    int cnt = s&#x5B;i];\n    for(int k=1; k&amp;lt;=cnt; k*=2) {\n        items.push_back({k*w&#x5B;i], k*v&#x5B;i]});\n        cnt -= k;\n    }\n    if(cnt &gt; 0) {\n        items.push_back({cnt*w&#x5B;i], cnt*v&#x5B;i]});\n    }\n}\n\n\/\/ \u7136\u540e\u8fdb\u884c01\u80cc\u5305\u5904\u7406\nfor(auto item : items) {\n    for(int j=V; j&gt;=item.first; j--) {\n        dp&#x5B;j] = max(dp&#x5B;j], dp&#x5B;j-item.first] + item.second);\n    }\n}\n<\/pre><\/div>\n\n\n<p>\u65f6\u95f4\u590d\u6742\u5ea6\u4f18\u5316\u4e3aO(n<em>V<\/em>log s)\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e94\u3001\u5206\u7ec4\u80cc\u5305\u95ee\u9898<\/h2>\n\n\n\n<p>\u5206\u7ec4\u80cc\u5305\u95ee\u9898\u4e2d\uff0c\u7269\u54c1\u88ab\u5206\u6210\u82e5\u5e72\u7ec4\uff0c<strong>\u6bcf\u7ec4\u53ea\u80fd\u9009\u62e9\u4e00\u4e2a\u7269\u54c1<\/strong>\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u95ee\u9898\u63cf\u8ff0<\/h3>\n\n\n\n<p>\u6709N\u7ec4\u7269\u54c1\u548c\u4e00\u4e2a\u5bb9\u91cf\u4e3aV\u7684\u80cc\u5305\u3002\u7b2ci\u7ec4\u7269\u54c1\u6709s[i]\u4e2a\u7269\u54c1\uff0c\u6bcf\u4e2a\u7269\u54c1\u6709\u91cd\u91cfw[i][j]\u548c\u4ef7\u503cv[i][j]\u3002\u6bcf\u7ec4\u53ea\u80fd\u9009\u4e00\u4e2a\u7269\u54c1\u6216\u4e0d\u9009\uff0c\u6c42\u6700\u5927\u4ef7\u503c\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u57fa\u672c\u89e3\u6cd5<\/h3>\n\n\n\n<p>\u5206\u7ec4\u80cc\u5305\u7684\u72b6\u6001\u8f6c\u79fb\u65b9\u7a0b\u4e3a\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nint dp&#x5B;V+1] = {0};\n\nfor(int i=1; i&lt;=N; i++) { \/\/ \u679a\u4e3e\u7ec4\n    for(int j=V; j&gt;=0; j--) { \/\/ \u679a\u4e3e\u5bb9\u91cf\n        for(int k=0; k&lt;s&#x5B;i]; k++) { \/\/ \u679a\u4e3e\u7ec4\u5185\u7269\u54c1\n            if(j &gt;= w&#x5B;i]&#x5B;k]) {\n                dp&#x5B;j] = max(dp&#x5B;j], dp&#x5B;j-w&#x5B;i]&#x5B;k]] + v&#x5B;i]&#x5B;k]);\n            }\n        }\n    }\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">3. \u4ee3\u7801\u5b9e\u73b0<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &lt;vector&gt;\n#include &lt;algorithm&gt;\nusing namespace std;\n\nint groupKnapsack(int V, vector&lt;vector&lt;pair&lt;int, int&gt;&gt;&gt;&amp; groups) {\n    vector&lt;int&gt; dp(V+1, 0);\n\n    for(auto&amp; group : groups) {\n        for(int j=V; j&gt;=0; j--) {\n            for(auto&amp; item : group) {\n                if(j &gt;= item.first) {\n                    dp&#x5B;j] = max(dp&#x5B;j], dp&#x5B;j-item.first] + item.second);\n                }\n            }\n        }\n    }\n    return dp&#x5B;V];\n}\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u80cc\u5305\u95ee\u9898\u6982\u8ff0 \u80cc\u5305\u95ee\u9898(Knapsack Problem)\u6e90\u4e8e\u4e00\u4e2a\u7b80\u5355\u573a\u666f\uff1a\u5047\u8bbe\u4f60\u6709\u4e00\u4e2a\u5bb9\u91cf\u6709\u9650\u7684\u80cc\u5305\uff0c\u9700 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4],"tags":[120],"class_list":["post-520","post","type-post","status-publish","format-standard","hentry","category-algorithm","tag-dp"],"_links":{"self":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=520"}],"version-history":[{"count":4,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/520\/revisions"}],"predecessor-version":[{"id":524,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/520\/revisions\/524"}],"wp:attachment":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}