{"id":288,"date":"2006-03-25T10:54:00","date_gmt":"2006-03-25T10:54:00","guid":{"rendered":"http:\/\/fanhaijun.com\/?p=288"},"modified":"2006-03-25T10:54:00","modified_gmt":"2006-03-25T10:54:00","slug":"%e8%83%8c%e5%8c%85%e7%ae%97%e6%b3%95","status":"publish","type":"post","link":"https:\/\/fanhaijun.com\/?p=288","title":{"rendered":"\u80cc\u5305\u7b97\u6cd5"},"content":{"rendered":"<p>#include&nbsp;&lt;iostream.h&gt;<br \/>#include&lt;iomanip.h&gt;<br \/>#include&lt;string.h&gt;<br \/>int&nbsp;min(int&nbsp;w,int&nbsp;c)<br \/>{int&nbsp;temp;<br \/>&nbsp;if&nbsp;(w&lt;c)&nbsp;temp=w;<br \/>&nbsp;else<br \/>&nbsp;temp=c;<br \/>&nbsp;return&nbsp;temp;<br \/>}<br \/>int&nbsp;max(int&nbsp;w,int&nbsp;c)<br \/>{<br \/>&nbsp;int&nbsp;temp;<br \/>&nbsp;if&nbsp;(w&gt;c)&nbsp;temp=w;<br \/>&nbsp;else<br \/>&nbsp;temp=c;<br \/>&nbsp;return&nbsp;temp;<br \/>}<br \/>void&nbsp;knapsack(int&nbsp;v[],int&nbsp;w[],int&nbsp;c,int&nbsp;n,int**m)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u6c42\u6700\u4f18\u503c<br \/>{<br \/>&nbsp;&nbsp;int&nbsp;jmax=min(w[n]-1,c);<br \/>&nbsp;&nbsp;for(int&nbsp;j=0;j&lt;=jmax;j++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;m[n][j]=0;<br \/>&nbsp;&nbsp;for(int&nbsp;jj=w[n];jj&lt;=c;jj++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;m[n][jj]=v[n];<br \/>&nbsp;&nbsp;for(int&nbsp;i=n-1;i&gt;1;i&#8211;){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u9012\u5f52\u90e8\u5206<br \/>&nbsp;&nbsp;&nbsp;&nbsp;jmax=min(w[i]-1,c);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j=0;j&lt;=jmax;j++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m[i][j]=m[i+1][j];<br \/>&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;jj=w[i];jj&lt;=c;jj++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m[i][jj]=max(m[i+1][jj],m[i+1][jj-w[i]]+v[i]);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;m[1][c]=m[2][c];<br \/>&nbsp;&nbsp;if(c&gt;=w[1])<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]);<br \/>&nbsp;cout&lt;&lt;&quot;\u6700\u4f18\u503c\uff1a&quot;&lt;&lt;m[1][c]&lt;&lt;endl;<br \/>&nbsp;for(int&nbsp;l=2;l&lt;=n;l++)<br \/>&nbsp;&nbsp;for(int&nbsp;j=0;j&lt;=c;j++)<br \/>&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;cout&lt;&lt;m[l][j]&lt;&lt;setw(c-1);<br \/>&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;cout&lt;&lt;endl;<br \/>&nbsp;&nbsp;cout&lt;&lt;&quot;*******************************************&quot;&lt;&lt;endl;<br \/>}<\/p>\n<p>int&nbsp;traceback(int&nbsp;**m,int&nbsp;w[],int&nbsp;c,int&nbsp;n,int&nbsp;x[])&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u56de\u4ee3\uff0c\u6c42\u6700\u4f18\u89e3<br \/>{<br \/>&nbsp;cout&lt;&lt;&quot;\u5f97\u5230\u7684\u4e00\u7ec4\u6700\u4f18\u89e3\u5982\u4e0b:&quot;&lt;&lt;endl;<br \/>&nbsp;&nbsp;for(int&nbsp;i=1;i&lt;n;i++)<br \/>&nbsp;&nbsp;if(m[i][c]==m[i+1][c])&nbsp;x[i]=0;<br \/>&nbsp;&nbsp;else&nbsp;{x[i]=1;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;c-=w[i];}<br \/>&nbsp;&nbsp;x[n]=(m[n][c])?1:0;<br \/>&nbsp;&nbsp;for(int&nbsp;y=1;y&lt;=n;y++)<br \/>&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;cout&lt;&lt;setw(5)&lt;&lt;x[y];<br \/>&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;return&nbsp;x[n];<br \/>&nbsp;&nbsp;<br \/>}<br \/>void&nbsp;main()<br \/>{<br \/>&nbsp;int&nbsp;n,c;<br \/>&nbsp;int&nbsp;**m;<br \/>&nbsp;cout&lt;&lt;&quot;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;\u6b22\u8fce\u4f7f\u75280-1\u80cc\u5305\u95ee\u9898\u7a0b\u5e8f&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&#038;&quot;&lt;&lt;endl;<br \/>&nbsp;cout&lt;&lt;&quot;\u8bf7\u8f93\u5165\u7269\u54c1\u4e2a\u6570\u548c\u91cd\u91cf\u4e0a\u9650:&quot;;<br \/>&nbsp;cin&gt;&gt;n&gt;&gt;c;<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;*v=new&nbsp;int[n+1];<br \/>&nbsp;cout&lt;&lt;&quot;Pls&nbsp;input&nbsp;the&nbsp;property&nbsp;(v[i]):&quot;&lt;&lt;endl;<br \/>&nbsp;for(int&nbsp;i=1;i&lt;=n;i++)<br \/>&nbsp;&nbsp;cin&gt;&gt;v[i];<br \/>&nbsp;int&nbsp;*w=new&nbsp;int[n+1];<br \/>&nbsp;cout&lt;&lt;&quot;Pls&nbsp;input&nbsp;the&nbsp;weight&nbsp;(w[i]):&quot;&lt;&lt;endl;<br \/>&nbsp;for(int&nbsp;j=1;j&lt;=n;j++)<br \/>&nbsp;&nbsp;cin&gt;&gt;w[j];<br \/>&nbsp;int&nbsp;*x=new&nbsp;int[n+1];<br \/>&nbsp;m=new&nbsp;int*[n+1];&nbsp;&nbsp;\/\/\u52a8\u6001\u7684\u5206\u914d\u4e8c\u7ef4\u6570\u7ec4<br \/>&nbsp;for(int&nbsp;p=0;p&lt;n+1;p++)<br \/>&nbsp;{<br \/>&nbsp;&nbsp;m[p]=new&nbsp;int[c+1];<br \/>}&nbsp;<br \/>&nbsp;<br \/>&nbsp;knapsack(v,w,c,n,m);<br \/>&nbsp;traceback(m,w,c,n,x);<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>#include&nbsp;&lt;iostream.h&#038;g&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[101],"tags":[],"class_list":["post-288","post","type-post","status-publish","format-standard","hentry","category-college-life"],"_links":{"self":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/posts\/288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=288"}],"version-history":[{"count":0,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/posts\/288\/revisions"}],"wp:attachment":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}