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

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

?? sa.cpp

?? 運(yùn)用模擬退火算法解決旅行商問題
?? CPP
字號(hào):
#include <iostream>
using namespace std;
static int target[9]={1,2,3,4,5,6,7,8,0};
class eight{
public:
	eight* parent;
	eight* next;
	eight* pre;
    eight(int init_num[9]);
	eight(int num1,int num2,int num3,int num4,int num5,int num6,int num7,int num8,int num9){
        num[0]=num1;
		num[1]=num2;
		num[2]=num3;
		num[3]=num4;
		num[4]=num5;
		num[5]=num6;
		num[6]=num7;
		num[7]=num8;
		num[8]=num9;
	}
	eight(void){
		for(int i=0;i<9;i++)
			num[i]=i;
	}
	void cul_para(void);
	void get_numbers_to(int other_num[9]);
	int get_nipn(void){
		return not_in_position_num;
	}
	int get_deapth(void){
		return deapth;
	}
	int get_evafun(void){
		return eva_function;
	}
	void set_num(int other_num[9]);
	void show(void);
	eight& operator=(eight&);
	eight& operator=(int other_num[9]);
	int operator==(eight&);
	int operator==(int other_num[9]);
private:
	int num[9];
	int not_in_position_num;
	int deapth;
	int eva_function;
};
void eight::cul_para(void){
	int i;
	int temp_nipn=0;
	for (i=0;i<9;i++)
		if (num[i]!=target[i])
			temp_nipn++;
		not_in_position_num=temp_nipn;
		if (this->parent==NULL)
			deapth=0;
		else
			deapth=this->parent->deapth+1;
		eva_function=not_in_position_num+deapth;
}
eight::eight(int init_num[9]){
	for (int i=0;i<9;i++)
		num[i]=init_num[i];
}
void eight::show(){
	for(int i=0;i<9;i++){
		cout<<num[i];
		cout<<" ";
		if(i==2||i==5||i==8)cout<<"\n";
	}
}
void eight::get_numbers_to(int other_num[9]){
	for (int i=0;i<9;i++)
		other_num[i]=num[i];
}
void eight::set_num(int other_num[9]){
	for(int i=0;i<9;i++)
		num[i]=other_num[i];
}
eight& eight::operator=(eight& another_8num){
	for(int i=0;i<9;i++)
		num[i]=another_8num.num[i];
	not_in_position_num=another_8num.not_in_position_num;
	deapth=another_8num.deapth+1;
	eva_function=not_in_position_num+deapth;
	return *this;
}
eight& eight::operator=(int other_num[9]){
	for(int i=0;i<9;i++)
		num[i]=other_num[i];
	return *this;
}
int eight::operator==(eight& another_8num){
	int match=1;
	for(int i=0;i<9;i++)
		if(num[i]!=another_8num.num[i]){
			match=0;
			break;
		}
		if(match==0)
			return 0;
		else return 1;
}
int eight::operator==(int other_num[9]){
	int match=1;
	for(int i=0;i<9;i++)
		if(num[i]!=other_num[i]){
			match=0;
			break;
		}
		if(match==0)
			return 0;
		else return 1;
}
//空格向上移
int move_up(int num[9]){
	for(int i=0;i<9;i++)
		if(num[i]==0) break;
		if(i<3) return 0;
		else{
		num[i]=num[i-3];
		num[i-3]=0;
		return 1;
		}
}
//空格向下移
int move_down(int num[9]){
	for(int i=0;i<9;i++)
		if(num[i]==0)
			break;
		if(i>5)return 0;
		else{
		num[i]=num[i+3];
		num[i+3]=0;
		return 1;
		}
}
//空格向左移
int move_left(int num[9]){
	for(int i=0;i<9;i++)
		if(num[i]==0)
			break;
		if(i==0||i==3||i==6)
			return 0;
		else{
			num[i]=num[i-1];
			num[i-1]=0;
			return 1;
		}
}
//空格向右移
int move_right(int num[9]){
	for(int i=0;i<9;i++)
		if(num[i]==0)
			break;
		if(i==2||i==5||i==8)
			return 0;
		else{
			num[i]=num[i+1];
		    num[i+1]=0;
		    return 1;
		}
}
//判斷可否解出
int icansolve(int num[9],int target[9]){
	int i,j;
	int count_num,count_target;
	for(i=0;i<9;i++)
		for (j=0;j<i;j++){
			if(num[j]<num[i]&&num[j]!=0)
				count_num++;
			if(target[j]<target[i]&&target[j]!=0)
				count_target++;
		}
		count_num=count_num-2*(count_num/2);
	    count_target=count_target-2*(count_target/2);
		if((count_num==1&&count_target==1)||(count_num==0&&count_target==0))
			return 1;
		else
			return 0;
}
//判斷有無重復(fù)
int existed(int num[9],eight *where){
	eight *p;
	for(p=where;p!=NULL;p=p->parent)
		if(*p==num)
			return 1;
		return 0;
}
//尋找估價(jià)函數(shù)最小的葉子節(jié)點(diǎn)
eight* find_OK_leaf(eight* start){
	eight *p,*OK;
	p=OK=start;
	int min=start->get_evafun();
	for(p=start;p!=NULL;p=p->next)
		if(min>p->get_evafun()){
			OK=p;
			min=p->get_evafun();
		}
		return OK;
}
//主函數(shù)開始
int main(void){
	int num[9];
	int flag=0;//是否輸入錯(cuò)誤標(biāo)志,1表示輸入錯(cuò)誤
	int bingo=0;//是否查找成功標(biāo)志,1表示成功
	int i,j;
	cout<<"Please input the number(0 for the blank):\n";
	for(i=0;i<9;i++){
		flag=0;
		cin>>num[i];
		for(j=0;j<i;j++)
			if(num[i]==num[j])
				flag=1;
			if(num[i]<0||num[i]>8||flag==1){
				i--;
				cout<<"input error,please input again!"<<endl;
			}
	}
	eight S(num),Target(target);
	S.parent=S.next=S.pre=NULL;
	S.cul_para();
	cout<<"Now the initial numbers are:"<<endl;;
	S.show();
	cout<<"And the Target is:"<<endl;
	Target.show();
	eight *OK_leaf=&S,*leaf_start=&S,*new_8num,*p;
	while(OK_leaf!=NULL&&bingo!=1){
		OK_leaf=find_OK_leaf(leaf_start);
		if(*OK_leaf==Target){
			bingo=1;
			break;
		}
		p=OK_leaf->pre;
		OK_leaf->get_numbers_to(num);
		if(move_up(num)&&!existed(num,OK_leaf)){
			new_8num=new eight;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->pre=p;
			if(p==NULL) leaf_start=new_8num;
			else
				p->next=new_8num;
			p=new_8num;
		}
		OK_leaf->get_numbers_to(num);
		if(move_down(num)&&!existed(num,OK_leaf)){
			new_8num=new eight;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->pre=p;
			if(p==NULL)
				leaf_start=new_8num;
			else
				p->next=new_8num;
			    p=new_8num;
		}
		OK_leaf->get_numbers_to(num);
		if(move_left(num)&&!existed(num,OK_leaf)){
			new_8num=new eight;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->pre=p;
			if(p==NULL)
				leaf_start=new_8num;
			else
				p->next=new_8num;
			    p=new_8num;
		}
		OK_leaf->get_numbers_to(num);
		if(move_right(num)&&!existed(num,OK_leaf)){
			new_8num=new eight;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->pre=p;
			if(p==NULL)
				leaf_start=new_8num;
			else
				p->next=new_8num;
			    p=new_8num;
		}
		p->next=OK_leaf->next;
		if(OK_leaf->next!=NULL)
			OK_leaf->next->pre=p;
		OK_leaf->next=OK_leaf->pre=NULL;
	}
	if(bingo==1){
		eight *p;
		for(p=OK_leaf->parent;p!=NULL;p=p->parent){
			cout<<endl;
			p->show();
		}
	}else cout<<"Fail to find!";
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区日产乱码 | 国产精品18久久久久| 欧美精品久久99久久在免费线| 亚洲欧美偷拍三级| 色婷婷激情一区二区三区| 亚洲精品中文字幕乱码三区| 91日韩一区二区三区| 亚洲男人的天堂网| 91国偷自产一区二区开放时间 | 成人性生交大片免费| 中文一区二区在线观看| 成人av网址在线| 亚洲三级在线看| 欧美性猛交一区二区三区精品| 亚洲国产精品久久人人爱 | 亚洲综合成人在线视频| 欧美日韩亚洲丝袜制服| 免费一级片91| 国产日产亚洲精品系列| 91在线视频在线| 天天操天天综合网| 久久免费美女视频| 色香色香欲天天天影视综合网| 亚洲午夜久久久久久久久电影院 | 99久久精品情趣| 一区二区三区四区激情| 欧美一卡在线观看| 欧美福利电影网| 免费观看日韩电影| 国产精品久久久爽爽爽麻豆色哟哟 | 国产精品2024| 亚洲最快最全在线视频| 精品国产免费视频| 色偷偷久久人人79超碰人人澡 | 国产精品伦理一区二区| 色综合天天性综合| 青草国产精品久久久久久| 国产日韩欧美麻豆| 8x福利精品第一导航| 国产.欧美.日韩| 图片区小说区国产精品视频| 久久精品亚洲乱码伦伦中文| 欧美色区777第一页| 国产a区久久久| 日本v片在线高清不卡在线观看| 亚洲国产高清不卡| 欧美一区午夜视频在线观看| 成人黄色av网站在线| 日本不卡在线视频| 亚洲人成网站精品片在线观看| 精品电影一区二区| 欧美三级在线视频| 99在线精品一区二区三区| 日本aⅴ亚洲精品中文乱码| 亚洲人成网站影音先锋播放| 精品成人一区二区| 91精品婷婷国产综合久久性色| eeuss鲁片一区二区三区在线观看| 免费在线观看一区二区三区| 亚洲免费av网站| 国产日韩欧美精品电影三级在线| 欧美一区国产二区| 欧美日韩国产片| 欧美影片第一页| 91色.com| 色婷婷亚洲综合| 成人av电影在线网| 成人激情小说网站| 国产69精品久久久久毛片| 久草精品在线观看| 美女视频网站久久| 美女性感视频久久| 免费成人结看片| 天堂蜜桃一区二区三区 | 日本一区二区动态图| 精品剧情v国产在线观看在线| 欧美精品18+| 欧美日韩国产区一| 88在线观看91蜜桃国自产| 欧美日免费三级在线| 欧美影片第一页| 欧美网站大全在线观看| 在线免费亚洲电影| 欧美日韩另类国产亚洲欧美一级| 在线欧美小视频| 欧美日韩视频在线观看一区二区三区| 色成年激情久久综合| 欧洲亚洲国产日韩| 欧美亚男人的天堂| 69久久夜色精品国产69蝌蚪网| 欧美性受极品xxxx喷水| 欧美日韩午夜在线| 欧美一区二区三区视频在线| 日韩精品资源二区在线| 久久综合久久鬼色中文字| 久久麻豆一区二区| 国产精品久久久久久久久免费相片 | 日韩视频免费观看高清在线视频| 欧美一区二区免费观在线| 欧美一区二区三区不卡| 精品国产伦一区二区三区观看体验| 久久精品夜色噜噜亚洲a∨| 欧美国产在线观看| 一区二区在线免费观看| 五月婷婷久久综合| 国产又粗又猛又爽又黄91精品| 成人午夜伦理影院| 在线观看亚洲精品视频| 欧美变态tickling挠脚心| 国产亚洲精品7777| 亚洲综合一区二区三区| 日本成人在线一区| 成人免费黄色在线| 欧美午夜精品理论片a级按摩| 日韩欧美一级二级| 国产精品电影一区二区| 色综合久久久久久久久| 7777女厕盗摄久久久| 久久久久久久久一| 亚洲电影你懂得| 国产一区二区三区黄视频| 91丝袜呻吟高潮美腿白嫩在线观看| 精品视频一区二区三区免费| 久久综合给合久久狠狠狠97色69| 中文字幕一区视频| 美国精品在线观看| 色综合天天综合色综合av| 欧美白人最猛性xxxxx69交| 亚洲久草在线视频| 久久精品免费观看| 91电影在线观看| 久久婷婷久久一区二区三区| 一区二区三区欧美日| 国产久卡久卡久卡久卡视频精品| 欧美三级乱人伦电影| 欧美国产日韩a欧美在线观看| 日韩精品亚洲专区| eeuss鲁片一区二区三区在线观看| 欧美一区二区三区免费大片 | 91精品国产一区二区三区| 日本一区二区视频在线| 免费观看在线综合色| 在线影院国内精品| 中文字幕av不卡| 精品午夜久久福利影院| 69av一区二区三区| 亚洲国产日日夜夜| 91免费观看在线| 国产精品美女久久久久久| 久久99国产精品久久| 欧美日韩国产中文| 亚洲午夜影视影院在线观看| 99久久er热在这里只有精品15| 精品国产免费视频| 麻豆精品视频在线观看视频| 欧美日韩国产综合视频在线观看 | 日韩一区中文字幕| 国产真实乱偷精品视频免| 欧美精品乱码久久久久久| 一区二区三区在线视频免费| 成人高清av在线| 久久亚洲春色中文字幕久久久| 日本不卡123| 欧美一区国产二区| 三级不卡在线观看| 欧美伦理电影网| 视频在线观看一区| 91精品欧美福利在线观看| 亚洲h动漫在线| 欧美猛男超大videosgay| 亚洲国产欧美在线| 欧美日韩精品系列| 午夜激情一区二区| 91精品一区二区三区在线观看| 亚洲成av人片一区二区三区 | 在线播放国产精品二区一二区四区| 亚洲欧美一区二区三区久本道91| 97久久超碰国产精品电影| 日韩久久一区二区| 在线观看日韩电影| 亚洲bt欧美bt精品777| 在线播放中文字幕一区| 美女看a上一区| 久久久久久久久99精品| 国产精品18久久久| 日韩毛片视频在线看| 色噜噜夜夜夜综合网| 亚洲成a人片在线不卡一二三区| 欧美精品777| 国产精一区二区三区| 国产精品久久久久一区二区三区共 | 欧美日韩高清在线播放| 日韩不卡在线观看日韩不卡视频| 日韩免费一区二区| 懂色av噜噜一区二区三区av| 亚洲色图制服丝袜| 91精品国产色综合久久不卡蜜臀| 激情伊人五月天久久综合| 国产精品久久久久影院亚瑟 | 一区二区三区免费|