亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? beibao5.cpp

?? 八種背包問題的所有源代碼
?? CPP
字號:
// 我真誠地保證:
    
// 我自己獨立地完成了整個程序從分析、設(shè)計到編碼的所有工作。
// 如果在上述過程中,我遇到了什么困難而求教于人,那么,我將在程序?qū)嵙?xí)報告中
// 詳細地列舉我所遇到的問題,以及別人給我的提示。

// 在此,我感謝 XXX, …, XXX對我的啟發(fā)和幫助。下面的報告中,我還會具體地提到
// 他們在各個方法對我的幫助。
 
// 我的程序里中凡是引用到其他程序或文檔之處,
// 例如教材、課堂筆記、網(wǎng)上的源代碼以及其他參考書上的代碼段,
// 我都已經(jīng)在程序的注釋里很清楚地注明了引用的出處。

// 我從未沒抄襲過別人的程序,也沒有盜用別人的程序,
// 不管是修改式的抄襲還是原封不動的抄襲。

// 我編寫這個程序,從來沒有想過要去破壞或妨礙其他計算機系統(tǒng)的正常運轉(zhuǎn)。
    
// 徐瀟然 00548065 智能科學(xué)系

/*
	文件名稱:beibao5
	項目名稱:beibao5
	創(chuàng)建者:徐瀟然
	創(chuàng)建時間:9/26/2006
	最后修改時間:9/26/2006
	功能:用加限界策略的優(yōu)化回溯算法解決0/1背包問題
	文件中的函數(shù)名稱和簡單功能描述:
		Cbeibao5::input():輸入關(guān)于背包問題的數(shù)據(jù)信息(背包總重量total_weight,物品件數(shù)number,
				 及每個物品的重量和價值),并為成員指針weight,value開辟動態(tài)空間
		Cbeibao5::output():解問題,輸出最大總價值和最優(yōu)方案
		Cbeibao5::sort():按價值重量比從大到小排序,weight[],value[]的內(nèi)容不變,而將排序后的
				結(jié)果(物品序號)儲存在索引表list中
		Cbeibao5::f(int i):用加限界策略的優(yōu)化回溯算法對0/1背包問題進行求解
		Cbeibao5::bound(int i); 限界函數(shù)
	文件中用到的他處定義的全局變量及其出處:無
	與其他文件的依賴關(guān)系:無
*/
#include <iostream>
using namespace std;

/*
	類名稱:Cbeibao5
	定義該類的目的:用加限界策略的優(yōu)化回溯算法解決0/1背包問題,并給出最優(yōu)方案
	類屬性:
	類中函數(shù)及功能:
		input():輸入關(guān)于背包問題的數(shù)據(jù)信息(背包總重量total_weight,物品件數(shù)number,
				 及每個物品的重量和價值),并為成員指針weight,value等開辟動態(tài)空間
		output():解問題,輸出最大總價值和最優(yōu)方案
		sort():按價值重量比從大到小排序,weight[],value[]的內(nèi)容不變,而將排序后的
				結(jié)果(物品序號)儲存在索引表list中
		f(int i):用加限界策略的優(yōu)化回溯算法對0/1背包問題進行求解
		bound(int i); 限界函數(shù)		
	與其他類的關(guān)系(調(diào)用/被調(diào)用哪類對象中的什么函數(shù)):無
*/
class Cbeibao5{
private:
	double total_weight; //背包能容納的總重量
	int number; //物品件數(shù)
	double *weight;//指向一個記錄每個物品重量的數(shù)組
	double *value; //指向一個記錄每個物品價值的數(shù)組

	int *x_current; //當前分支的物品取舍情況
	int *x_max; //最大總價值時的物品取舍情況
	double sum_value; //當前分支的總價值
	double max_value; //最大總價值
	double current_weight; //當前取過物品的總重量
	int *list; //排序后的索引表

/*
	函數(shù)名稱:input
	函數(shù)功能描述:輸入關(guān)于背包問題的數(shù)據(jù)信息(背包總重量total_weight,物品件數(shù)number,
				  及每個物品的重量和價值),并為成員指針weight,value等開辟動態(tài)空間
*/
	void input();

/*
	函數(shù)名稱:sort
	函數(shù)調(diào)用之前的預(yù)備條件:讀取背包問題的數(shù)據(jù)信息
	函數(shù)功能描述:按價值重量比從大到小排序,weight[],value[]的內(nèi)容不變,而將排序后的
				結(jié)果(物品序號)儲存在索引表list中
*/
	void sort();

/*
	函數(shù)名稱:f
	函數(shù)調(diào)用之前的預(yù)備條件:對物品按價值重量比排序
	函數(shù)功能描述:用加限界策略的優(yōu)化回溯非遞歸算法對0/1背包問題進行求解
	函數(shù)的輸入?yún)?shù):i表示當前搜索深度
*/
	void f(int i); 

/*
	函數(shù)名稱:bound
	函數(shù)功能描述:限界函數(shù)
	返回值(如果有的話):當前狀態(tài)下不取物品i時能達到的最大總價值的上界
	函數(shù)的輸入?yún)?shù):當前狀態(tài)下的物品序號
*/
	double bound(int i); //限界函數(shù)

/*
	函數(shù)名稱:output
	函數(shù)功能描述:解問題,輸出最大總價值和最優(yōu)方案
*/
	void output();
public:
/*
	函數(shù)名稱:Cbeibao5
	函數(shù)功能描述:構(gòu)造函數(shù),并實現(xiàn)問題的讀入和答案的輸出,從而解決該問題
*/
	Cbeibao5(){
		input();
		output();
	}

/*
	函數(shù)名稱:~Cbeibao6
	函數(shù)功能描述:析構(gòu)函數(shù),并釋放先前開辟的動態(tài)變量空間
*/
	~Cbeibao5(){
		delete weight;
		delete value;
		delete x_current;
		delete x_max;
	}
};

void Cbeibao5::input(){
	cout<<"請輸入背包可容納的總重量w=";
	cin>>total_weight;
	cout<<"請輸入物品的件數(shù)n=";
	cin>>number;
	cout<<"請分別輸入這"<<number<<"個物品的重量:\n";
	int i;
	weight=new double[number];
	for(i=0;i<number;i++)
		cin>>weight[i];
	cout<<"請分別輸入這"<<number<<"個物品的價值:\n";
	value=new double[number];
	for(i=0;i<number;i++)
		cin>>value[i];
	
	x_max=new int[number];
	x_current=new int[number];
	list=new int[number];
	for(i=0;i<number;i++)
		x_max[i]=0; //初始時最大總價值的物品組合為無
	max_value=0; //初始時最大總價值為0
	current_weight=0; //初始時當前重量和為0
	sum_value=0; //初始時當前總價值為0
}

void Cbeibao5::output(){
	sort();
	f(0);

	cout<<"最大總價值為"<<max_value<<endl;
	cout<<"方案為(所取物品序號):\n";
	int i;
	for(i=0;i<number;i++){
		if(x_max[i]==1) //若x_max[i]值為0,沒選該物品;為1,則選
			cout<<i+1<<"  ";
	}
	cout<<endl;
}

void Cbeibao5::f(int i){
	int j;
	if(i==number){ //到達葉結(jié)點
		if(sum_value>max_value){
			max_value=sum_value;
			for(j=0;j<number;j++)//找到總價值更大的情況,更新取舍情況
				x_max[j]=x_current[j];
		}
		return;
	}

	if(current_weight+weight[list[i]]<=total_weight){//物品i滿足背包容量條件,可以選取
		current_weight+=weight[list[i]];
		sum_value+=value[list[i]];
		x_current[list[i]]=1;
		f(i+1);
		current_weight-=weight[list[i]]; //回溯前清理現(xiàn)場
		sum_value-=value[list[i]];
		x_current[list[i]]=0;
	}	
	
	if(bound(i)>max_value){ //不裝入物品i
		x_current[list[i]]=0;
		f(i+1);
	}
}

double Cbeibao5::bound(int i){
	double rest_weight=total_weight-current_weight; //背包剩余的容量
	double bound_value=sum_value;//返回的上界等于物品i前的總價值加上i后按連續(xù)背包問題算的價值和
	int j;
	for(j=i+1;j<number&&rest_weight>=weight[list[j]];j++){
		bound_value+=value[list[j]];
		rest_weight-=weight[list[j]];
	}
	if(j<number&&rest_weight>0)
		bound_value+=rest_weight*value[list[j]]/weight[list[j]]; //按照連續(xù)背包問題估計上界
	return bound_value;
}

void Cbeibao5::sort(){
	int i,j,max,*temp=new int[number];
	for(i=0;i<number;i++)
		temp[i]=0;
	for(i=0;i<number;i++){
		max=0;
		while(temp[max]==1)
			max++;
		for(j=1;j<number;j++){
			if(temp[j]==0 && value[j]/weight[j]>value[max]/weight[max])
				max=j;
		}
		temp[max]=1; //為已選出的物品作記號
		list[i]=max; //索引表,依價值重量比由大到小
	}
}

void main(){
	Cbeibao5 obj;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区免费看| 国产欧美日韩另类一区| 国产丝袜美腿一区二区三区| 国内成人免费视频| 91福利资源站| 久久精品亚洲精品国产欧美kt∨ | 中文字幕精品三区| 欧美日韩国产中文| 国内国产精品久久| 国产一区视频在线看| 久久99精品久久久久久久久久久久| 成人小视频在线| 五月激情六月综合| 亚洲男人都懂的| 亚洲色图色小说| 国产一区二区精品久久| 精品国产免费视频| 国产一区福利在线| 亚洲成a人v欧美综合天堂| 国产农村妇女毛片精品久久麻豆| 欧美三级日韩在线| 自拍偷拍国产亚洲| 色久综合一二码| 久久久久久99精品| 精品在线亚洲视频| 亚洲综合视频在线| 国产精品美女久久久久av爽李琼| 日韩一区二区三区四区| 免费在线观看精品| www.亚洲精品| 免费久久精品视频| 国产精品一二三四五| 国产精品一区二区免费不卡| 国产精品一二三区| 欧美日韩视频专区在线播放| 成人免费不卡视频| 欧美中文字幕久久| 久久精品国产99国产精品| 蜜桃视频在线观看一区| 久久精品99国产精品| 91色视频在线| 亚洲高清不卡在线| 日韩一区二区三| 欧美精品欧美精品系列| 国产精品美女久久福利网站| 最近日韩中文字幕| aaa欧美大片| 国产喂奶挤奶一区二区三区| 日韩视频在线永久播放| 精品久久久久久久久久久久久久久久久| 精品国产青草久久久久福利| 国产麻豆午夜三级精品| 精品视频在线视频| 亚洲欧美国产毛片在线| 欧美亚洲国产bt| 欧美性感一类影片在线播放| 91丨九色porny丨蝌蚪| 日本亚洲视频在线| 日韩一区二区在线观看视频| 亚洲香肠在线观看| 欧美亚洲动漫制服丝袜| 国产精品123| 日av在线不卡| 91在线小视频| 五月天精品一区二区三区| 欧美日韩1234| 九九久久精品视频| 亚洲欧美在线aaa| 最好看的中文字幕久久| 成人午夜伦理影院| 亚洲国产精品t66y| 欧美一区二区三区在线视频| 国产成人av影院| 中文字幕一区二区三区av| 88在线观看91蜜桃国自产| 日韩精品一区二区三区在线| 国产精品自产自拍| 精品黑人一区二区三区久久| 欧美日韩一区在线| 久久99国产精品久久| 看电影不卡的网站| 九九精品视频在线看| 成人性生交大片免费看视频在线| 亚洲色图色小说| 日本黄色一区二区| 国产精品白丝av| 国产91清纯白嫩初高中在线观看| 日本在线不卡一区| 强制捆绑调教一区二区| 丁香一区二区三区| 在线不卡的av| 国产麻豆日韩欧美久久| 一区二区三区在线观看网站| 久久久久久久久99精品| 欧美成人女星排行榜| 日本精品一级二级| 欧美高清一级片在线| 久久久精品tv| 91精品1区2区| 久久中文娱乐网| 久久久国际精品| 国产精品理伦片| 亚洲男人的天堂一区二区| 国产午夜三级一区二区三| 日本人妖一区二区| 亚洲成人免费看| 一区二区三区中文字幕| 首页国产欧美日韩丝袜| 国模一区二区三区白浆| 国产麻豆精品在线| 91美女福利视频| 国产精品美女久久久久久2018| 美腿丝袜亚洲色图| 亚洲成人中文在线| 色婷婷激情久久| 精品国产乱码久久久久久老虎| 日韩精品中文字幕在线一区| 久久先锋影音av鲁色资源| 亚洲一区二区四区蜜桃| 一本色道久久综合亚洲精品按摩| 7777精品伊人久久久大香线蕉 | 欧美一区二区三区在线看| 亚洲成人高清在线| 9人人澡人人爽人人精品| 欧美性淫爽ww久久久久无| wwww国产精品欧美| 爽好多水快深点欧美视频| 色成年激情久久综合| 亚洲欧美在线高清| 99vv1com这只有精品| 精品一区二区国语对白| 国产精品一二三在| 日本一二三不卡| 91玉足脚交白嫩脚丫在线播放| 亚洲乱码精品一二三四区日韩在线| 粉嫩一区二区三区在线看| www久久久久| 懂色av一区二区三区免费观看 | 国产成人午夜视频| 国产午夜亚洲精品羞羞网站| 黄色精品一二区| 成人短视频下载| 国产精品久久网站| 欧美精品丝袜中出| 波多野结衣的一区二区三区| 国产目拍亚洲精品99久久精品| 日韩欧美国产成人一区二区| 国内精品久久久久影院一蜜桃| 国产精品久久久久久久岛一牛影视 | 欧美唯美清纯偷拍| 亚洲一区二区在线免费看| 精品福利视频一区二区三区| 日韩欧美色综合| 日韩欧美中文一区二区| 日韩女优制服丝袜电影| 欧美乱熟臀69xxxxxx| 欧美一区二区成人| 亚洲四区在线观看| 国产风韵犹存在线视精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩av网站免费在线| 久久精品免费看| 色网站国产精品| 91精品国产综合久久国产大片| 欧美一区日韩一区| 中文字幕一区二区三区蜜月| 国产精品资源在线看| 国产福利一区在线| 欧美三区免费完整视频在线观看| 欧美成人伊人久久综合网| 国产视频一区二区三区在线观看 | 久久精品亚洲精品国产欧美| 日韩精品中午字幕| 日韩国产高清影视| 欧美日韩高清一区二区| 久久久久久99久久久精品网站| 日韩一区中文字幕| 国产精品羞羞答答xxdd| 精品国产污污免费网站入口| 三级亚洲高清视频| 欧美中文字幕一区| 国产日产欧美一区二区三区| 奇米四色…亚洲| 欧美精品一区二区三区蜜臀| 国产精品久久一级| 国产剧情在线观看一区二区| 9191精品国产综合久久久久久| 亚洲三级免费观看| 色综合久久88色综合天天6| 亚洲嫩草精品久久| 色狠狠av一区二区三区| 国产日韩欧美一区二区三区综合| 精品成人一区二区三区| 日韩av二区在线播放| 国产乱国产乱300精品| 欧美乱妇20p| 国内成人免费视频| 国产精品精品国产色婷婷| av不卡一区二区三区| 亚洲色图视频免费播放|