freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第七講搜索-文庫吧資料

2024-10-19 13:01本頁面
  

【正文】 拼第 i根棍子的時候,必定選剩下的木棒里最長的一根,作為該棍子的第一根木棒。一根長木棒,當(dāng)然比總和相同的幾根短木棒要優(yōu)先使用。每次選木棒的時候都盡量先選長的。 ? 拼好前 i根棍子,結(jié)果發(fā)現(xiàn)第 i+1根拼不成了,那么就要推翻第 i根的拼法,重拼第 i根 ….. 直至有可能推翻第 1根棍子的拼法。從最長的那根木棒的長度一直枚舉到木棒長度總和的一半,對每個假設(shè)的棍子長度試試看能否拼齊所有棍子。 輸出要求 為每個案例,分別輸出木棒的可能最小長度,每個案例占一行。第二行是經(jīng)過裁截后,所得到的各節(jié)木棒的長度。 輸入數(shù)據(jù) 由多個案例組成,每個案例包括兩行。請你設(shè)計一個程序,幫助喬治計算棍子的可能最小長度。 影響搜索效率的因素 ? 影響搜索效率的因素 ?搜索對象 (枚舉什么 ) ?搜索順序 ( 先枚舉什么 , 后枚舉什么 ) ?剪枝 (及早判斷出不符合要求的情況 ) 例題: POJ1011 木棒問題 ? 問題描述: 喬治拿來一組等長的棍子,將它們隨機(jī)地裁斷(截斷后的小段稱為木棒),使得每一節(jié)木棒的長度都不超過 50個長度單位。但是可能導(dǎo)致輸出結(jié)果的步數(shù)太多(幾萬步),這樣交到 POJ上會 Output limit exceeded 如果運(yùn)氣很壞,也可能數(shù)組會不夠用。 可以不寫遞歸,自己用大數(shù)組實現(xiàn)一個棧。 } 用深搜解決本題不好。 i ) { cout szResult[i]。 for( int i = nMoves 1。 nPos = anFather[nPos]。 int nPos = nQHead。 } } szLine2[j] = 0。039。x39。 39。 szLine[i]。 int i,j。 char szLine2[20]。 memset(szFlag,0,sizeof(szFlag))。 } return false。 nQTail ++。 anFather[nQTail] = nQHead。 //如果擴(kuò)展標(biāo)記已經(jīng)存在, //則不能入隊 //設(shè)上已擴(kuò)展標(biāo)記 SetBit( szFlag[nByteNo],nBitNo,1)。 int nBitNo = nNewStatus % 8。 if( nNewStatus == 1 ) continue。i 4。 if( nStatus == nGoalStatus ) {//找到目標(biāo)狀態(tài) return true。 MyQueue[nQHead] = nStatus。 nQHead = 0。 } return NineToTen(szTmp)。039。 else { szTmp[nZeroPos] = szTmp[nZeroPos + 1]。r39。 } break。 szTmp[nZeroPos 1 ] = 39。: if( nZeroPos % 3 == 0) return 1。 case 39。039。 else { szTmp[nZeroPos] = szTmp[nZeroPos + 3]。d39。 } break。 szTmp[nZeroPos 3] = 39。: if( nZeroPos 3 0 ) return 1。 switch( cMove) { case 39。 } int NewStatus( int nStatus, char cMove) //求從 nStatus經(jīng)過 cMove 移動后得到的新狀態(tài) //若移動不可行則返回 1 { char szTmp[20]。 return 0。 s[0] = 39。 i 0。 s[j] = 0。 nBase /= 9。 j ++。039。039。 nBase /= 9。 int j = 0??赡苡星皩?dǎo) 0 //返回 0的位置 { int nZeroPos。= ~(1 n)。 c, int n,int v) { if( v ) c |= (1 n)。 1。 } return nResult。 nResult += s[i] 39。 s[i]。//四種動作 八數(shù)碼例子程序 int NineToTen( char * s ) //九進(jìn)制字符串轉(zhuǎn)十進(jìn)制 { int nResult = 0。 int nQTail。 //父節(jié)點指針 int MyQueue[1000000]。 char szMoves[1000000]。 //目標(biāo)狀態(tài) unsigned char szFlag[48427562]。 輸入數(shù)據(jù): 2 3 4 1 5 x 7 6 8 輸出結(jié)果: ullddrurdllurdruldr 用廣搜解決八數(shù)碼問題 2 3 4 1 5 7 6 8 輸入數(shù)據(jù)代表: 移動序列中 u 表示使空格上移 d 表示使空格下移 r 表示使空格右移 l 表示使空格左移 1 2 3 4 5 6 7 8 輸出數(shù)據(jù)
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1