実験的な問題を解決する機械ローディング問題7--

 

ローディングの問題解決// 
の#include <stdio.hに> 
の#define MAXN 20 
INT N-、Wは、
INT maxW; 
INT X [MAXN]; 
int型minm = 32767; 
ボイドDISP(N-INT){ 
	int型I; 
	のprintfは(「選択コンテナ:\ N- "); 
	のため(I = 1、Iは<= N-; I ++)。
		IF(X [I] == 1)
			のprintf("選択%Dコンテナ\ N- "I); 
	のprintf("トータル重量%D = \ N-」、maxW); 
} 
ボイド読み込み(W INT []、INT TW、整数mを、OPはint []、IをINT){// i番目と認め容器
	J INT; 
	IF(I> N- ){ 
		IF(TW <= Wである&&(TW> maxW ||(TW == maxW && M <minm))){ 
			maxW = TW; 
			minm = M; 
			。(J = 1、J <= N; J ++)
				X [J] = OP [J]; 
		} 
	} 
	他{ 
		OP [I] = 1。
		IF(TW + W [i]は<= W)
			ローディング(W、TW + W [i]は、M + 1、OP、I + 1)。
		OP [I] = 0; 
		もし(M <= 2)
			読み込み(W、TW、M、OP、私は1 +)。
	} 
} 
int型のmain(){ 
	int値W [] = {0,5,2,6,4,3}。
	int型のオペアンプ[MAXN]。//存放临时解
	N = 5、W = 10。
	ローディング(wは、0,0、OP、1)。
	DISP(N)
}

  

おすすめ

転載: www.cnblogs.com/Hqx-curiosity/p/12153415.html