Êý¾Ý½á¹¹¿Îºó´ð°¸ - ±±ÓÊ ÏÂÔØ±¾ÎÄ

#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