#include\
#define N 6 /*ÎïÆ·ÊýÁ¿*/ #define S 8 /*±³°ü´óС*/
int W[N+1]={0,1,2,3,4,5,6};/*Êý¾Ý£¬¸÷ÎïÆ·ÖØÁ¿£¬W[0]²»Ê¹ÓÃ*/
/*
±³°üº¯Êý knapsack() ²ÎÊý
int s Ê£ÓàÖØÁ¿ int n Ê£ÓàÎïÆ·Êý
·µ»Ø int ±³°ü·ÖÅäÊÇ·ñ³É¹¦ */
int knapsack(int s,int n) { if(s == 0)/*·ÖÅä½áÊø£¬³É¹¦*/
return 1;
if(s < 0 || (s > 0 && n < 1))/*ûÓпÉÓÿռ䣬»òÕßÎïÆ··ÖÅäÍê±Ï*/ return 0;
if( knapsack(s - W[n] , n - 1)){/*µÝ¹é*/ printf(\/*Êä³ö*/
return 1;
}
return knapsack(s , n - 1);
}
int main() { if(knapsack(S , N))/*µÝ¹éµ÷ÓÃ*/
printf(\else printf(\
return 1; }/*main*/
·ÇµÝ¹é½â·¨£º
Ò»¼þÒ»¼þµÄÎïÆ·Íù°ü£¨¼´Õ»£©Àï·Å£¬·¢ÏÖÓÐÎÊÌ⣬ÄóöÀ´£¬·ÅÆäËûµÄÎïÆ·¡£ £¨1£©i=1
£¨2£©´ÓµÚi¼þµ½µÚn¼þ²âÊÔÿ¼þÎïÆ·£¬¶ÔÓÚµÚj´ÎÑ»·£¬²âÊÔµÚj¼þÎïÆ·
£¨2.1£©Èç¹û¸ÃÎïÆ·¿ÉÒÔ·Å£¬ÈëÕ»
£¨2.2£©ÈôÕ»µÄÈÝÁ¿¸ÕºÃ´ïµ½ÒªÇ󣬳ɹ¦£¬´òÓ¡Õ»ÔªËØ¡£ £¨2.3£©¼ÌÐø²âÊÔj+1¼þÎïÆ·
£¨3£©ÈôûÓгɹ¦
£¨3.1£©ÈôÕ»¿Õ£¬·µ»ØÊ§°Ü
£¨3.2£©½«Õ»¶¥ÎïÆ·£¨ÉèµÚk¸ö£©³öÕ» £¨3.3£©Áîi=k+1£¬·µ»Ø£¨2£©
´úÂ룺
#include\
#define N 6 /*ÎïÆ·ÊýÁ¿*/ #define S 8 /*±³°ü´óС*/
int W[N+1]={0,1,2,3,4,5,6};/*Êý¾Ý£¬¸÷ÎïÆ·ÖØÁ¿£¬W[0]²»Ê¹ÓÃ*/ int stack[1000]={0}; int value=0; int size=0;
knapsackstack() { int i=1; }
while (1) { for (int j=i;j<=N;j++) }
{
if (value+W[j]<=S) {stack[size++]=j; value+=W[j];} if (value==S){ printf(\µÃµ½Ò»×é½â£º\ }
for (int p=0;p else if (value>S) break; } if (size==0) {printf(\i=stack[--size]+1; value-=W[i-1]; void main() { } knapsackstack(); ϰÌâ4 1. Ìî¿ÕÌâ £¨1£©Ò»°ãÀ´Ëµ£¬Êý×é²»Ö´ÐУ¨___________£©ºÍ£¨___________£©²Ù×÷£¬ËùÒÔͨ³£²ÉÓà £¨___________£©·½·¨À´´æ´¢Êý×顣ͨ³£ÓÐÁ½ÖÖ´æ´¢·½Ê½£º£¨___________£©ºÍ£¨___________£©¡£ ´ð°¸£ºÉ¾³ý ²åÈë ˳Ðò´æ´¢ ÐÐÓÅÏÈ´æ´¢ ÁÐÓÅÏÈ´æ´¢ £¨2£©Éè8ÐÐ8ÁеĶþάÊý×éÆðÊ¼ÔªËØÎªA[0][0]£¬°´ÐÐÓÅÏÈ´æ´¢µ½ÆðÊ¼ÔªËØÏ±êΪ0µÄһάÊý×éBÖУ¬ÔòÔªËØB[23]ÔÚÔ¶þάÊý×éÖÐΪ£¨___________£©¡£Èô¸Ã¶þάÊý×éΪÉÏÈý½Ç¾ØÕ󣬰´ÐÐÓÅÏÈѹËõ´æ´¢ÉÏÈý½ÇÔªËØµ½ÆðÊ¼ÔªËØÏ±êΪ0µÄһάÊý×éCÖУ¬ÔòÔªËØC[23]¼´ÎªÔ¾ØÕóÖеģ¨___________£©ÔªËØ¡£ ´ð°¸£ºA[2][7] A[3][5] £¨3£©Éè¶þάÊý×éAΪ6ÐÐ8ÁУ¬°´ÐÐÓÅÏÈ´æ´¢£¬Ã¿¸öÔªËØÕ¼6×Ö½Ú£¬´æ´¢Æ÷°´×Ö½Ú±àÖ·¡£ÒÑÖªAµÄÆðʼ´æ´¢µØÖ·Îª1000H£¬Êý×éAÕ¼ÓõĴ洢¿Õ¼ä´óСΪ£¨___________£©×Ö½Ú£¬Êý×éAµÄ×îºóÒ»¸öÔªËØµÄϱêΪ£¨___________£©£¬¸ÃÔªËØµÄµÚÒ»¸ö×Ö½ÚµØÖ·Îª£¨___________£©H£¬ÔªËØA[1][4]µÄµÚÒ»¸ö×ֽڵĵØÖ·Îª£¨___________£©H¡££¨Ìáʾ£ºÏ±ê´Ó0¿ªÊ¼¼Æ£© ´ð°¸£º288 A[5][7] 111AH 1048H £¨4£©ÉèC++Öд洢ÈýάÊý×éAmnp£¬ÔòµÚÒ»¸öÔªËØÎªa000£¬Èô°´ÐÐÓÅÏÈ´æ´¢£¬ÔòaijkÇ°Ãæ¹²ÓУ¨___________£©¸öÔªËØ£»Èô°´ÁÐÓÅÏÈ´æ´¢£¬ÔòaijkÇ°Ãæ¹²ÓУ¨___________£©¸öÔªËØ¡£ ´ð°¸£ºinp+jp+k i+mj+mnk £¨5£©³£¼ûµÄÏ¡Êè¾ØÕóѹËõ·½·¨ÓУº£¨___________£©ºÍ£¨___________£©¡£ ´ð°¸£ºÈýÔª×é±í Ê®×ÖÁ´±í £¨6£©¹ãÒå±í£¨£¨a£©£¬£¨£¨b£¬c£©£¬d£©£¬£¨e£©£©µÄ³¤¶ÈΪ£¨___________£©£¬±íͷΪ£¨___________£©£¬±íβΪ£¨___________£©¡£ ´ð°¸£º3 £¨a£© £¨£¨£¨b£¬c£©£¬d£©£¬£¨e£©£© £¨7£©Éè¹ãÒå±íLS£½£¨£¨a£©£¬£¨£¨b£¬c£©£¬d£©£¬£¨e£©£©£¬ÈôÓÃÈ¡±íÍ·²Ù×÷GetHead£¨£©ºÍÈ¡±íβ²Ù×÷GetTail£¨£©½øÐÐ×éºÏ²Ù×÷£¬ÔòÈ¡³öÔªËØbµÄÔËËãΪ£¨___________£©¡£ ´ð°¸£ºGetHead(GetHead(GetHead(GetTail(LS)))) £¨8£©Èô¹ãÒå±íAÂú×ãGetHead£¨A£©£½GetTail£¨A£©£¬ÔòA£½£¨___________£©¡£ ´ð°¸£º£¨£¨£©£© 2. ÎÊ´ðÌâ £¨1£©¸ù¾ÝÏÂÃæµÄ¾ØÕó£¬Ð´³ö¾ØÕóתÖúóµÄÈýÔª×é±í£¬ÆðʼÐÐÁÐֵΪ1¡£ ?0??0??3??0?0??15?12000180900130000000005000000140000??0?0?? 0??0?0?? Row 1 1 2 2 3 Col 3 6 1 5 1 Item -3 15 12 18 9 3 5 6 ¾ØÕóÐÐÊý£º7 ¾ØÕóÁÐÊý£º6 4 2 3 13 5 14 ·ÇÁãÔªËØ¸öÊý£º8 £¨2£©¶ÔÓÚÈçÏÂÏ¡Êè¾ØÕó£¬Çëд³ö¶ÔÓ¦µÄÈýÔª×é˳Ðò±í£¬Èô²ÉÓÃ˳ÐòÈ¡£¬Ö±½Ó´æµÄËã·¨½øÐÐתÖÃÔËË㣬ÒýÈ븨ÖúÊý×énumber[]ºÍposition[]£¬·Ö±ð±íʾ¾ØÕó¸÷ÁеķÇÁãÔªËØ¸öÊýºÍ¾ØÕóÖи÷ÁеÚÒ»¸ö·ÇÁãÔªËØÔÚתÖþØÕóÖеÄλÖã¬Çëд³öÊý×éÖеĸ÷ÔªËØ£¨ËùÓÐÊý×éÆðÊ¼ÔªËØÏ±êΪ0£©¡£ ?0??3 Ô¾ØÕó ?0??0?000020?100??0? 5??0?? Row 0 1 2 2 ÐÐÊý£º4 Col 2 0 2 3 Item 2 3 -1 5 Col Number[col] Position[col] 0 1 0 1 0 1 2 2 1 3 1 3 ÁÐÊý£º4 ·ÇÁãÔªËØ¸öÊý£º4 £¨3£©¶ÔÓÚÉÏÌâÖеÄÏ¡Êè¾ØÕó£¬Ð´³ö¶ÔÓ¦µÄÈýÔª×é±íºÍÊ®×ÖÁ´±í¡£ ÈýÔª×é±í£º Row 0 1 Col 2 0 Item 2 3