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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? 人工智能當中經典的傳教士與野人渡河問題
?? CPP
字號:
//ferry.cpp

/*
This is a ferry question!
 missionary
 cannibal
 ship
 用一個鏈表表示要搜索的狀態集 
 用一個鏈表表示解狀態集
 啟發函數為f(x)=h(x)+g(x)
 h(x)=M+C-2D
 g(x)=深度

 search :待搜索的鏈表
 finished: 完成搜索的鏈表
 route:     路徑鏈表

*/

#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>


struct FerryNode                 //用來保存節點的狀態
{
	int missionary;              //左岸傳教士數目
	int cannibal;                //左岸野人數目
	int side;                   //船在左岸為1,在右岸為0
	int depth;
	FerryNode *father;          //父節點
	FerryNode *next;            
};

FerryNode *SEARCH=NULL,*FINISHED=NULL,*ROUTE=NULL;
int MISSIONARY=0,CANNIBAL=0,SHIP=0;
int SUCCESS=2;


int main()
{

	void setFerry();                               //設置渡河問題的函數
	void shipFerry();                               //渡河函數
	void printFerry();                             //打印渡河路徑
	//void printLink(FerryNode *);                   //打印鏈表函數

	cout<<endl<<"This is a ferry question."<<endl;
	cout<<"Program begin......"<<endl;

	

	setFerry();

	if((MISSIONARY<=0)||(SHIP<=1))
	{
		cout<<"不存在解答!"<<endl;
		cout<<"The program is finished."<<endl;
		getch();
		return 0;
	}

    shipFerry();
	printFerry();

	cout<<endl<<"The ferry program is finished!"<<endl;

	getch();

	return 0;
}

//設置渡河問題的函數
void setFerry()
{
	cout<<"清輸入傳教士的數目(野人的數目與傳教士一樣),要求>0:";
	cin>>MISSIONARY;
	//cout<<"\n清輸入野人的數目:"
	//cin>>CANNIBAL;
	CANNIBAL=MISSIONARY;
	cout<<"\n清輸入小船一次最多載客數,要求>1:";
	cin>>SHIP;

	//初始化鏈表
	SEARCH = new FerryNode;
	SEARCH->father = NULL;
    SEARCH->next = NULL;
	
	FINISHED = new FerryNode;
	FINISHED->father = NULL;
	FINISHED->next = NULL;

	ROUTE = new FerryNode;
	ROUTE->father = NULL;
	ROUTE->next = NULL;

	FerryNode *NewSearch = new FerryNode;
	NewSearch->missionary = MISSIONARY;
	NewSearch->cannibal = CANNIBAL;
	NewSearch->side = 1;
	NewSearch->depth = 0;
	NewSearch->father = NULL;
	NewSearch->next = NULL;
	SEARCH->next = NewSearch;

	FerryNode *NewRoute = new FerryNode;
	NewRoute->missionary = 0;
	NewRoute->cannibal = 0;
	NewRoute->side = 0;
	NewRoute->father =NULL;
	NewRoute->next = NULL;
	ROUTE->father = NewRoute;	

}

void  shipFerry()
{
	void createNode(FerryNode *);

	while(SUCCESS==2)
	{
		FerryNode *SearchNode = SEARCH->next;
		if(SearchNode!=NULL)
			{
				if((SearchNode->missionary+SearchNode->cannibal<=SHIP)&&(SearchNode->side ==1))
					{
						ROUTE->father->father = SearchNode;
						SUCCESS=1;
					}
				else
					{
						SEARCH->next = SearchNode->next;
					    SearchNode->next = FINISHED->next;
						FINISHED->next = SearchNode;
						createNode(SearchNode);
					}
				}
		else
		  SUCCESS=0;
	}



	
	

}

void printFerry()
{
	if(SUCCESS==0)
	{
		cout<<"There is no answer!"<<endl;
		return;
	}


	cout<<"This is the route:"<<endl;
	FerryNode *SearchNode = ROUTE ;
	FerryNode *ps=ROUTE;
	int i=1;
	while(ROUTE->father!=NULL )
	{

        while(SearchNode->father !=NULL)
		{
			ps = SearchNode;
            SearchNode = SearchNode->father;


		}


		cout<<"<"<<SearchNode->missionary<<","<<SearchNode->cannibal<<","<<SearchNode->side<<">   ";
		ps->father = NULL;

		if(i%5==0)
			cout<<endl;
		i=i+1;

		SearchNode = ROUTE ;
	    ps=ROUTE;

	}
	cout<<endl;


}

void createNode(FerryNode *SearchNode)
{
	int m,c,s,d;
	int findFerry(int m,int c,int s);
	void insertFerry(int m,int c,int s,int d,FerryNode *);
	m = SearchNode->missionary ;
	c = SearchNode->cannibal ;
	s = SearchNode->side ;
	d = SearchNode->depth ;


//	cout<<"\n測試"<<m<<c<<s;

	if(s== 1)
	{
		for(int i=0;i<=SHIP;i++)
			for(int j=0;j<=SHIP-i;j++)
			{
				if(i+j>0)
					if(((i<=m) && (j<=c) && (m-i >= c-j) &&(MISSIONARY-m+i >= CANNIBAL-c+j))||((i<=m)&&(j<=c)&&(m-i==0))||((i<=m)&&(j<=c)&&(MISSIONARY-m+i==0)))
					{
						if(findFerry(m-i,c-j,0)==0)
							insertFerry(m-i,c-j,0,d+1,SearchNode);						

					}					


			}

	}

	else
	{
		for(int i=0;i<=SHIP;i++)
			for(int j=0;j<=SHIP-i;j++)
			{
				if(i+j>0)
					if(((i<=MISSIONARY-m)&&(j<=CANNIBAL-c)&&(m+i>=c+j)&&(MISSIONARY-m-i>=CANNIBAL-c-j))||((m==0)&&(i==0)&&(j<=CANNIBAL-c))||((i<=MISSIONARY-m)&&(j<=CANNIBAL-c)&&(MISSIONARY-m-i==0)))
					{
						if(findFerry(m+i,c+j,1)==0)
							insertFerry(m+i,c+j,1,d+1,SearchNode);
					}

			}
	}




}

int findFerry(int m,int c,int s)
{
	FerryNode *ps = SEARCH->next ;
	FerryNode *pf = FINISHED->next ;

    while(ps!= NULL)
	{
		if((m==ps->missionary )&&(c==ps->cannibal )&&(s==ps->side ))
			return 1;
		ps= ps->next ;
	}
    
    while(pf!= NULL)
	{
		if((m==pf->missionary )&&(c==pf->cannibal )&&(s==pf->side ))
			return 1;
		pf= pf->next ;
	}

	return 0;


}

void insertFerry(int m,int c,int s,int d,FerryNode *SearchNode)
{

	FerryNode *ps = SEARCH->next ;
	FerryNode *pb=SEARCH;
	while(ps!=NULL)
	{
       if((m+c-2*s+d) <= (ps->missionary+ps->cannibal-2*ps->side+ps->depth ) )
	   {
		   FerryNode *NewNode = new FerryNode;
		   NewNode->missionary = m;
		   NewNode->cannibal = c;
		   NewNode->side = s;
		   NewNode->depth = d;
		   NewNode->next = ps ;
		   NewNode->father = SearchNode;
		   pb->next = NewNode;
		   
		   return;
	   }
	   pb = ps;
	   ps=ps->next ;
	}


	FerryNode *nd = new FerryNode;
	nd->missionary = m;
	nd->cannibal = c;
	nd->side =s;
	nd->depth = d;
	nd->next = NULL;
	nd->father = SearchNode;
	pb->next = nd;

}

/*
void printLink(FerryNode *pn)
{
	cout<<"\nThis is a link....\n";
	pn=pn->next ;
    while(pn!=NULL)
	{
		cout<<"<"<<pn->missionary <<","<<pn->cannibal <<","<<pn->side <<","<<pn->depth<<">  ";
		pn=pn->next ;
	}


}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
风间由美一区二区av101| 亚洲成人自拍网| 日韩精品一区二区三区在线播放| 欧美中文字幕不卡| 91福利国产成人精品照片| 91看片淫黄大片一级| 97久久超碰精品国产| 色94色欧美sute亚洲13| 欧美在线免费观看视频| 777色狠狠一区二区三区| 欧美一二三区在线观看| 欧美成人猛片aaaaaaa| 精品国产91乱码一区二区三区| 欧美一区二区啪啪| 久久精品视频在线看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美成人精品福利| 久久亚洲精品小早川怜子| 国产日韩欧美麻豆| 亚洲日本乱码在线观看| 亚洲国产精品久久不卡毛片| 蜜桃视频在线观看一区二区| 国产精品中文有码| 色综合久久88色综合天天 | 美女视频黄频大全不卡视频在线播放| 久久精品国内一区二区三区| 国产成人精品在线看| 色老头久久综合| 欧美精品一区二区三区一线天视频| 26uuu精品一区二区在线观看| 国产精品天美传媒沈樵| 天天射综合影视| 成人午夜又粗又硬又大| 在线看不卡av| 国产日产精品1区| 丝袜亚洲另类欧美综合| 成人精品高清在线| 欧美一个色资源| 亚洲精品视频在线看| 激情五月激情综合网| 色成年激情久久综合| 久久精品人人做人人综合| 亚洲一区二区免费视频| 高清不卡一二三区| 91麻豆精品91久久久久同性| 欧美国产精品中文字幕| 日韩电影一区二区三区四区| 99在线视频精品| 久久美女艺术照精彩视频福利播放| 亚洲一区国产视频| jiyouzz国产精品久久| 日韩一区二区三区视频在线观看| 亚洲男同性视频| 国产91丝袜在线18| 日韩一级黄色大片| 一区二区三区在线免费播放| 高清不卡在线观看| 亚洲精品一区二区三区四区高清 | 欧美日韩激情一区二区| 国产精品久久久久久久久快鸭 | 色先锋资源久久综合| 国产三级精品在线| 国产精一区二区三区| 日韩欧美一级二级三级久久久| 亚洲黄色av一区| 一本一道久久a久久精品| 欧美激情一区二区三区不卡 | 国产精品成人一区二区三区夜夜夜| 国产一区日韩二区欧美三区| 日韩精品一区二区在线| 看电影不卡的网站| 欧美一区二区三区系列电影| 日韩av一区二区在线影视| 欧美猛男超大videosgay| 一区2区3区在线看| 欧美色偷偷大香| 日韩精品每日更新| 日韩欧美一区二区不卡| 精品一区二区精品| 久久女同精品一区二区| 国产a久久麻豆| 国产精品久久久久国产精品日日| 成人一区二区在线观看| 国产精品高潮久久久久无| 粉嫩aⅴ一区二区三区四区五区| 亚洲国产精品av| 91亚洲国产成人精品一区二区三| 亚洲人123区| 欧美日本一区二区三区四区| 日韩电影一区二区三区四区| 日韩一区二区三区在线| 国产一区二区h| 1000部国产精品成人观看| 欧美午夜宅男影院| 青青草一区二区三区| 久久久亚洲精品一区二区三区| www.av亚洲| 婷婷久久综合九色综合伊人色| 欧美一级高清大全免费观看| 国产精品亚洲专一区二区三区| 国产精品国产三级国产aⅴ入口| 欧美在线看片a免费观看| 日韩av一级片| 最新久久zyz资源站| 制服丝袜国产精品| 成人久久久精品乱码一区二区三区| 亚洲黄色在线视频| 久久综合久色欧美综合狠狠| 91免费国产视频网站| 日本va欧美va欧美va精品| 中文久久乱码一区二区| 欧美日韩中文国产| 国产黄色精品网站| 天堂蜜桃91精品| 亚洲欧洲三级电影| 日韩午夜三级在线| 色欧美乱欧美15图片| 精品综合久久久久久8888| 亚洲乱码精品一二三四区日韩在线| 制服丝袜日韩国产| 色欧美日韩亚洲| 国产成人av影院| 免费观看30秒视频久久| 一区二区三区中文字幕电影| 精品处破学生在线二十三| 色婷婷激情综合| 不卡电影免费在线播放一区| 久久99精品一区二区三区三区| 一区二区在线免费观看| 国产三级精品视频| 精品国产一区二区三区久久久蜜月| 一本久久a久久免费精品不卡| 国产精品一二三四五| 韩国三级中文字幕hd久久精品| 亚洲电影一级片| 成人欧美一区二区三区| 中文字幕成人在线观看| 26uuu国产一区二区三区| 欧美一区二区三区视频免费播放 | 亚洲乱码国产乱码精品精98午夜 | 欧美视频三区在线播放| 91免费观看国产| av午夜一区麻豆| 国产suv精品一区二区883| 久久99国产精品麻豆| 麻豆专区一区二区三区四区五区| 亚洲成av人**亚洲成av**| 亚洲欧美一区二区三区国产精品| 国产精品久久久一本精品| 国产无人区一区二区三区| 久久综合色婷婷| 久久亚洲私人国产精品va媚药| 精品88久久久久88久久久| 久久视频一区二区| 国产亚洲精品aa午夜观看| 久久久精品国产免费观看同学| 26uuu成人网一区二区三区| 久久综合狠狠综合久久激情| 精品日韩一区二区三区 | 亚洲乱码中文字幕综合| 亚洲无人区一区| 日韩av午夜在线观看| 日本美女视频一区二区| 麻豆freexxxx性91精品| 国模少妇一区二区三区| 国产成人av一区二区| 91香蕉国产在线观看软件| 色偷偷成人一区二区三区91| 欧美美女一区二区三区| 欧美一区国产二区| 久久亚洲综合色一区二区三区| 日本一区二区三区高清不卡| 亚洲男人的天堂在线aⅴ视频| 亚洲狠狠爱一区二区三区| 奇米一区二区三区| 国产美女精品一区二区三区| www.久久久久久久久| 欧美精品日韩一区| 久久精品视频一区二区| 亚洲天堂福利av| 蜜桃视频第一区免费观看| 国产凹凸在线观看一区二区| 色猫猫国产区一区二在线视频| 欧美人与性动xxxx| 久久久久久99精品| 亚洲综合丁香婷婷六月香| 久久成人羞羞网站| 91视频国产观看| 日韩免费观看高清完整版在线观看| 国产精品美女久久久久久久久| 午夜精品123| 成人美女视频在线观看18| 欧美一区二区视频免费观看| 国产精品色婷婷| 麻豆精品精品国产自在97香蕉| av不卡在线播放| 精品成人在线观看| 亚洲bt欧美bt精品| jiyouzz国产精品久久| 精品国产百合女同互慰|