수요 되돌아 놀이 테이블을 달성하기 위해 선형 프로그래밍 알고리즘

이 펜 질문입니다

첫째, 선물 카드를 시작하는 케이크 가게, 카드는 매장 케이크, 케이크의 각 구매를 구입하는 데 사용할 수 있습니다 사용합니다. 카드 소자 R의 액면가는 무효 카드의 잔액을 닫은 후, 한 번만 사용될 수있다. 정수는 케이크 가격의 모든 종류를 저장할 수 있습니다 알려진, 적어도, 구매 체크 아웃 후 카드의 잔액을 만드는 방법을 찾을 수 있습니다.

상태가 다시 개별 의사 결정을 유지하기 위해 주제를,뿐만 아니라 0-1 배낭 문제를 구입하는 방법입니다 찾는, 그 때 기다려야한다 (하나 개 이상의 결과가있을 수 있습니다, 그것은 마지막 상태를 유지 할 수 없음) ,

역 추적 할 때 잘못된 출력을하지 않도록주의해야

  1 사용법 #include " pch.h " 
  2 #INCLUDE <iostream>
   3 #INCLUDE < 문자열 >
   4  이용한  스페이스 성병;
  5  정적  CONST의  INT의 M = 20 ;
  6  정적  CONST의  INT의 array_ [] = { 1 , 2 , 5 , 9 , 10 , 11 , 8 , 3 , 20 , 80 };
  7  
  8  INT ** 시험 (INTN-)
   . (9)  {
 10      // M 쇼핑 카드의 번호, 케이크를위한 초기 값을 array_이다 
. (11)  
(12)는      N- = sizeof의 (array_) / sizeof의 ( INT )
 (13)는      INT ** P = 새로운 새  INT * [N-]
 14      위한 ( int로 I = 0 ; I <N-; I ++가 )
 15      {
 16          P [I]가 = 새로운 새  INT [M +의 1이다. ]
 . 17      }
 18 인      위해 ( INT I = 0; I <N-; I ++ )
 19.          에 대한 ( INT J = 0 ; J <= M, J ++ )
 (20)는              P [I] [J] = 0 ,
 21는  
22이다      // 선형 계획법
 23      // 또한, p [0]이 부여 
24      IF ([array_ 0 P는 [] <= M) 0 ] [array_ [ 0 ] = array_ [ 0 ]
 25       ( INT I = 1. ; I <N-; I ++ )
 (26)가      {
 27          // 전방으로부터 구매하지 처음 구매 
28          IF (array_ [I] <=M)
 29          {
 30              P가 [I]가 = [I]는 [array_] array_ [I]는,
 31이다          }
 32          // 판정은, 그것이 구입하는 경우, 축적 케이스 
(33)하면이다          위해 ( INT J = . 1 ; J <= M, J ++ )
 (34)가          {
 35              IF - (P [I . (1) [J] =!] 0 )
 36              {
 37                  INT의 P [I = 값 - . 1 ] [J] + array_ [I]는,
 38이다                  // 나중에 층이면 물품 
(39)                  IF (가격 <= M)
 40                 {
 (41)는                      P [I] 값 = 값;
 42은  
43된다                  }
 44이다                  // 생성물 층을 구입하지 않으면
 45                  // 이 테이블은이 제거하는 방법 재생할 경우에만 다시 재귀 적 방법을 모두 재생하는 데 사용된다 
(46)  
(47)                  P [I] [J] = P - [I (1). [J]]
 (48)  
(49)  
(50)              }
 (51)이다          }
 (52)는  
53이다      }
 (54)는  
55       ( int로 I = 0 ; I는 <N- I가 ++ )
 (56)가      {
 57 인          위해 ( INT J =. 1 ; J <= M, J ++ )
 58          {
 59              COUT << P [I] [J] << "  " ;
 60          }
 61는          COUT << ; ENDL
 62이다      }
 (63)이      복귀 ; P
 64  }
 65  
66  
67  // 현재 검색 제 n 층, 값의 잔존 용량에 대한 
68  의 INT doPrint ( INT ** P, INT의 N, INT의 값)
 69  {
 70      INT의 합 = 0 ;
 71이다      // 경우 구매 직접 종단 
72     IF (값 - array_ [N-] == 0 )
 (73)가      {
 74          COUT은 << array_ [N-] << ENDL;
 75           1이다. ]
 (76)      }
 (77)      INT의 왼쪽 = 값 - [N-] array_;
 78      IF (왼쪽> 0 )
 79      {
 80  
(81)          에 대한 ( INT I = N-- 1. , I> = 0 , 난 - )
 82          {
 83              // 데이터 상속 때문에, 균형 상태 각 플레이 테이블 대표 하나를 언급하는 것은 불가능하지만 이러한 각 층의 비 - 제로 값이 아닌 의미 갖는다
 84              //그리고 재귀 될 수 나중에 재생 테이블 충분한 자금이있는 경우에만 (즉, 왼쪽 array_가 [I]가> = 경우 0) 조건이 재귀 만족 무효 아니다
 85              @ 즉, 레이어 상태는 실제로 상속하고, 발생 이후보다 나중에 오는 
86              IF (! P는 [I]가 [좌측] = 0 - && 왼쪽 array_ [I]는> = 0 )
 (87)              {
 88                  COUT << [N-] << array_ "  " ;
 89                  SUM = + doPrint을 (P, I, 왼쪽),
 90              }
 91          }
 92      }
 93      리턴 ] SUM
 94  
95  }
 96  
97  INT 주 ()
 98  {
 99     // 선형 프로그래밍, 그리고 다양한 단계 계획 구매에 출력한다
 (100)      // M 쇼핑 카드의 번호를, 케이크를위한 초기 값을 array_ 
101      INT N- = 0 ;
 102      INT ** P = 시험 (N-)
 103      INT의 최대 = 0 ;
 104      // 최대 값 검색 
(105)을      위해 ( INT I = N-- 1. , I> = 0 , 난 - )
 106      {
 107           ( INT J = M, J> = 1. , J, )
 (108)          {
 109              IF (P [I] [J])
 110             {
 111                  최대 = P [I] [J]
112                  체류 ;
113              }
 114          }
 115          만약 (최대) 체류 ;
116      }
 117      COUT << " ----------------------------- " << ENDL;
118      INT의 합 = 0 ;
(119)      에 대한이 ( int로 - N I = 1 , I> = 0 난 -; )
 120      {
 121          합계 + = doprint를 (P, I, 최대);
122      }
 123      COUT << " 있다   " << << SUM " 종 법 구매 " << ENDL;
 124      COUT은 << " 의 최대 교하여 통합 될 수있다 " << 최대 << ENDL 단계;
 125  
(126) }

 

추천

출처www.cnblogs.com/jing19960917/p/11411513.html