![信息學(xué)競(jìng)賽搜索專題_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/18548efc-8a2f-4054-93b5-88eccf425db5/18548efc-8a2f-4054-93b5-88eccf425db51.gif)
![信息學(xué)競(jìng)賽搜索專題_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/18548efc-8a2f-4054-93b5-88eccf425db5/18548efc-8a2f-4054-93b5-88eccf425db52.gif)
![信息學(xué)競(jìng)賽搜索專題_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/18548efc-8a2f-4054-93b5-88eccf425db5/18548efc-8a2f-4054-93b5-88eccf425db53.gif)
![信息學(xué)競(jìng)賽搜索專題_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/18548efc-8a2f-4054-93b5-88eccf425db5/18548efc-8a2f-4054-93b5-88eccf425db54.gif)
![信息學(xué)競(jìng)賽搜索專題_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/18548efc-8a2f-4054-93b5-88eccf425db5/18548efc-8a2f-4054-93b5-88eccf425db55.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JSOI搜索算法NJOI搜索 給出初始節(jié)點(diǎn),要求尋找到符合約束條件的目標(biāo)節(jié)點(diǎn) 給出初始節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn),要求找到從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的一條路徑。 最優(yōu)解?較優(yōu)解?全部解?NJOI搜索算法 枚舉 廣度優(yōu)先搜索 深度優(yōu)先搜索、回溯 A*NJOI深度優(yōu)先深度優(yōu)先棧Why State?搜索深度優(yōu)先搜索遞歸(系統(tǒng)棧)回溯(人工棧的維護(hù))什么是棧?NJOIFunction jc(n:integer):integer; begin if n=1 then jc:=1 else jc:=n*jc(n-1); end;Begin write(jc(4);End.432系統(tǒng)棧實(shí)例系統(tǒng)棧實(shí)例NJOI在調(diào)用過(guò)程或函數(shù)之
2、前,系統(tǒng)需完成三件事:在調(diào)用過(guò)程或函數(shù)之前,系統(tǒng)需完成三件事:將所有的實(shí)在參數(shù)、返回地址等信息傳遞給被調(diào)用將所有的實(shí)在參數(shù)、返回地址等信息傳遞給被調(diào)用過(guò)程保存;過(guò)程保存;為被調(diào)用過(guò)程的局部變量分配存儲(chǔ)區(qū);為被調(diào)用過(guò)程的局部變量分配存儲(chǔ)區(qū);將控制轉(zhuǎn)移到被調(diào)過(guò)程的入口。將控制轉(zhuǎn)移到被調(diào)過(guò)程的入口。從被調(diào)用過(guò)程返回調(diào)用過(guò)程之前,系統(tǒng)也應(yīng)完從被調(diào)用過(guò)程返回調(diào)用過(guò)程之前,系統(tǒng)也應(yīng)完成三件工作:成三件工作:保存被調(diào)過(guò)程的計(jì)算結(jié)果;保存被調(diào)過(guò)程的計(jì)算結(jié)果;釋放被調(diào)過(guò)程的數(shù)據(jù)區(qū);釋放被調(diào)過(guò)程的數(shù)據(jù)區(qū);依照被調(diào)過(guò)程保存的返回地址將控制轉(zhuǎn)移到調(diào)用過(guò)依照被調(diào)過(guò)程保存的返回地址將控制轉(zhuǎn)移到調(diào)用過(guò)程。當(dāng)有多個(gè)過(guò)程構(gòu)成嵌
3、套調(diào)用時(shí),按照程。當(dāng)有多個(gè)過(guò)程構(gòu)成嵌套調(diào)用時(shí),按照“后調(diào)用先后調(diào)用先返回返回”的原則的原則系統(tǒng)棧系統(tǒng)棧NJOI漢諾塔(漢諾塔(tower of Hanoi)問(wèn)題。)問(wèn)題。Procedure move(n:integer; A,B,C:char); if n=1 then AC else move(n-1,A,C,B) AC move(n-1,B,A,C) 請(qǐng)寫(xiě)出系統(tǒng)棧的變化過(guò)程請(qǐng)寫(xiě)出系統(tǒng)棧的變化過(guò)程move(3,A,B,C)系統(tǒng)棧例NJOI 線性 讀寫(xiě)操作都在棧頂 先進(jìn)后出棧的特點(diǎn)NJOI 靜態(tài)數(shù)組Type arr=array1.n of integer; stack=record vec:a
4、rr; top:integer; end;Var s:stack;Var stack:arr; top:integer; n動(dòng)態(tài)鏈表Type link=node; node=record info:integer; next:link; end;Var stack:link; top:link;棧的定義NJOI操作靜態(tài)數(shù)組(A,top)動(dòng)態(tài)鏈表(H,top)建立棧測(cè)試棧是否為空讀棧頂元素進(jìn)棧(push) 出棧(pop)Top:=0top:=nil;Top=0top=nil;AtopTTop:=top+1; atop:=;?Top:=top-1; ?頭插法棧的基本操作NJOI 入棧
5、順序?yàn)?,2,3,n,出棧序列為p1,p2,p3,pn,已知p1=n,則pi=? 入棧順序?yàn)?,2,3,n,出棧序列為p1,p2,p3,pn,已知pn=1,則pi=? 棧s初始為空,有元素1,2,3,4,5,現(xiàn)進(jìn)行進(jìn)、進(jìn)、進(jìn)、初、進(jìn)、出、進(jìn),問(wèn):出棧序列,棧頂指針,棧頂元素應(yīng)用舉例NJOI 元素e1,e2,e3,e4,e5,e6依次通過(guò)棧s,若出棧順序?yàn)?,4,3,6,5,1,則棧s的容量至少為? 車(chē)廂重組:1,2,3,4,5進(jìn)站,第一個(gè)到達(dá)出口的是3號(hào)車(chē)廂,問(wèn):可能的排列總數(shù)?應(yīng)用舉例NJOI 中綴表示法 運(yùn)算優(yōu)先級(jí)問(wèn)題、括號(hào)的出現(xiàn)改變運(yùn)算順序 后綴表示法(逆波蘭式)-一次掃描棧的簡(jiǎn)單應(yīng)用表
6、達(dá)式NJOI 3/5+6 3 5 / 6 + 6-9*(4+3)+5 6 9 4 3 + * - 5 + 轉(zhuǎn)換方法 2*(x+y)/(1-x) (25+x)*(a*(a+b)+b)后綴表示法NJOI 6-9*(4+3)+5 優(yōu)先級(jí)運(yùn)算符優(yōu)先級(jí)#-1(0(入棧時(shí)不作優(yōu)先級(jí)比較)+ -1* /2)單獨(dú)處理入棧標(biāo)準(zhǔn):優(yōu)先級(jí)大于棧頂元素優(yōu)先級(jí)后綴表示法棧的使用NJOI# -16 - 19* 2( 04+ 13+*-+ 15+ 16943+*-5+6-9*(4+3)+5#NJOI6-9*(4+3)+53496+1(0*2-1#-1763-57+ 15-52中綴棧求解NJOIProcedure try(I
7、); 選擇第I個(gè)皇后的位置; if 安全 then (1) 放置第I個(gè)皇后; (2) if I=8 then 輸出 else try(I+1); 嘗試下一個(gè)位置;棧的應(yīng)用八皇后(遞歸)13455248724648246462758245724885824762425253873837636382537335773625825523828352326374837463472486388247373663724NJOIFor j:=1 to 8 do if bj and cI+j and dI-j then ai:=j; bj:=f; cI+j:=f; dI-j:=f; if I0 do j:=j
8、+1; if j8 then top:=top-1; j:=atop; bj ctop+j dtop-j:=t; else if (top8 then print;八皇后非遞歸NJOIFor j:=1 to 8 do if bj and cI+j and dI-j then ai:=j; bj:=f; cI+j:=f; dI-j:=f; if I0 do j:=j+1; if j 8 then top:=top-1; j:=atop; bj ctop+j dtop-j:=t; else if (top 8 then print;mm全排列非遞歸NJOI 方式 遞歸 回溯 基本框架深度優(yōu)先搜索N
9、JOI 素?cái)?shù)環(huán):將120這20個(gè)數(shù)擺成一個(gè)環(huán),要求相鄰的兩個(gè)數(shù)的和是一個(gè)素?cái)?shù) 走迷宮訓(xùn)練NJOI方向:上下左右NJOI方向:右下左上研究背景研究背景NJOI背包問(wèn)題簡(jiǎn)單枚舉有5個(gè)背包(不可拆分),背包的價(jià)值(w)、體積(t)各不相等,在容量(tj)范圍內(nèi),如何選取,使價(jià)值最大?For a1:=0 to 1 do for a2:=0 to 1 do for a5:=0 to 1 do P;St:=aI*tI;Sw:=aI*wIIf stmax then 記錄狀態(tài);有n個(gè)背包,問(wèn)題如何解決?回溯窮舉NJOIA: 123450000000001000100001111111逢1進(jìn)位分析問(wèn)題找出實(shí)質(zhì)N
10、JOI 初值:0 0 0 0 0 找到需要進(jìn)位的下標(biāo) 如何查找? N1 結(jié)束標(biāo)記?實(shí)質(zhì)NJOIFor I:=0 to n do aI:=0;While a0=0 do j:=n; while aj=1 do j:=j-1; aj:=aj+1; for I:=j+1 to n do aI:=0; 計(jì)算P;打??;程序框架逢1進(jìn)位NJOI N個(gè)砝碼(1,3,9,3n-1)可以放在重物一側(cè),也可以放在砝碼一側(cè),給出一個(gè)重量,問(wèn):如何稱?While a0=0 do j:=n; while aj=1 do j:=j-1; aj:=aj+1; for I:=j+1 to n do aI:= 0 ; 計(jì)算;-
11、1逢1進(jìn)位NJOI 有n種背包,每種背包有若干個(gè)(bi),While a0=0 do j:=n; while aj= 1 do j:=j-1; aj:=aj+1; for I:=j+1 to n do aI:= 0 ; 計(jì)算;Bj相等進(jìn)位NJOI 從1m中任意取出n個(gè),打印所有取法123124125134135145234235245345保證不重復(fù)選擇 升序第n 位進(jìn)位標(biāo)志:m第n-1位進(jìn)位標(biāo)志:m-1第 j 位進(jìn)位標(biāo)志?相等進(jìn)位組合問(wèn)題JSOI深度優(yōu)先搜索深入應(yīng)用NJOI跳馬周游棋盤(pán)問(wèn)題NJOI 一棵八叉樹(shù)八個(gè)方向:目前位置(i,j),下一個(gè)位置:可能為:(i+1,j+2),(i-1,j+
12、2),(i-2,j+1),(i-2,j-1),(i-1,j-2),(i+1,j-2),(i+2,j-1),(i+2,j+1) 用二維數(shù)組表示棋盤(pán),未走過(guò)的地方設(shè)置為0bi1,j1 0 當(dāng)棋格當(dāng)棋格 ( i1, j 1) 未被占據(jù)未被占據(jù) i 當(dāng)棋格當(dāng)棋格 ( i1, j1) 在第在第 i 次移動(dòng)中被占據(jù)次移動(dòng)中被占據(jù) 范圍:未走過(guò)的和不越出棋盤(pán)邊界的那些位置 為了防止馬跳出棋盤(pán),將棋盤(pán)擴(kuò)大二圈,這些位置的表示設(shè)置為-1分析NJOI 縮小搜索范圍避免無(wú)效搜索 改變搜索次序在幾個(gè)可能到達(dá)的位置中根據(jù)優(yōu)劣條件選擇一個(gè)最優(yōu)點(diǎn)來(lái)跳馬 剪枝深度優(yōu)先搜索的優(yōu)化方法NJOI 編一個(gè)程序,找出一條通過(guò)迷宮的路徑
13、。這里編一個(gè)程序,找出一條通過(guò)迷宮的路徑。這里顯示為顯示為1的單元表示走不通,將一只老鼠從入口處經(jīng)過(guò)迷宮到出的單元表示走不通,將一只老鼠從入口處經(jīng)過(guò)迷宮到出口處的通路一一打印出來(lái)??谔幍耐芬灰淮蛴〕鰜?lái)。010000001000010001100000111001100000 000000010入口 出口 迷宮問(wèn)題NJOI基本題 16NJOI 12345678910100010012000010101310100011140011000005000010010找出一個(gè)從入口到出口的最短路徑(八個(gè)方向)迷宮問(wèn)題總行數(shù):總行數(shù):0m+1, 總列數(shù):總列數(shù): 0n+1 111111111111010
14、00100111000010101111010001111100110000011000010010111111111111NJOI 在深搜過(guò)程中,記錄搜索步數(shù)并與最小值進(jìn)行比較,記錄當(dāng)前最佳方案,最后打印輸出 能否改進(jìn)?方案1NJOI 從步數(shù)的角度考慮問(wèn)題,分別列舉出一步能到達(dá)的結(jié)點(diǎn)、兩步能到達(dá)的結(jié)點(diǎn)、發(fā)現(xiàn)的終點(diǎn)肯定是最優(yōu)方案 如何記錄方案? 記錄每個(gè)結(jié)點(diǎn)的來(lái)由方案28個(gè)方向表示可以用數(shù)組說(shuō)明:個(gè)方向表示可以用數(shù)組說(shuō)明:10213141506-17-18-1如何記錄探索的蹤跡?如何記錄探索的蹤跡?隊(duì)列隊(duì)列序號(hào)序號(hào) 123456X123332Y123144pre012233基本NJOI如何防止
15、重復(fù)探索:將迷宮中的如何防止重復(fù)探索:將迷宮中的0替換為替換為-1隊(duì)列中入隊(duì)、出隊(duì)情況如下表:隊(duì)列中入隊(duì)、出隊(duì)情況如下表:迷宮問(wèn)題NJOI程序 1 2 3 4 5 6 7 8 91 0 1 0 0 0 1 0 0 12 0 0 0 0 1 0 1 0 13 1 0 1 0 0 0 1 1 14 0 0 1 1 0 0 0 0 05 0 0 0 0 1 0 0 1 0迷宮(用不同的顏色表示步數(shù))NJOI 與深搜區(qū)別之一:搜索的方向不影響搜索規(guī)模 主要影響因素是什么? 迷宮變形:起點(diǎn)在迷宮中心、幾乎沒(méi)有障礙結(jié)論*迷宮變形NJOI 在寬搜過(guò)程中,隊(duì)列以幾何數(shù)量級(jí)擴(kuò)展,擴(kuò)展層數(shù)越大,對(duì)存儲(chǔ)的威脅越大
16、如何對(duì)存儲(chǔ)進(jìn)行壓縮?雙向搜索結(jié)論NJOI現(xiàn)要找出一條從現(xiàn)要找出一條從A A到到B B經(jīng)過(guò)城市最少的一條路線。經(jīng)過(guò)城市最少的一條路線。廣度優(yōu)先遍歷廣度優(yōu)先遍歷: A 應(yīng)用NJOIF,r,隊(duì)列初始化;While f=r do 取隊(duì)首; 寬搜基本框架NJOIsq1.x:=1 ;sq1.y:=1 ;sq1.pre:=0 ;front :=1; rear :=1 ; mg1,1:=-1 ;while front=rear do x:=sqfront.x ; y:= sqfront.y ; for v:=1 to 8 do I:=x+zv.x ; j:= y+zv.y ; if mgI,j =0 then
17、 rear :=rear+1 ; sqrear.pre:=front ; sqrear.x:=I ; sqrear.y:=j ; mgI,j:= -1 ; if ( i=m ) and (j=n) then print; front := front+1 ; NJOI 設(shè)有數(shù)字設(shè)有數(shù)字2,3,5,7,13,運(yùn)算符號(hào):,運(yùn)算符號(hào):+,*, 且運(yùn)算無(wú)優(yōu)先級(jí)之分,如且運(yùn)算無(wú)優(yōu)先級(jí)之分,如2+3*5=25,3*5+2=17,編寫(xiě)一個(gè)程序,給出任意一個(gè),編寫(xiě)一個(gè)程序,給出任意一個(gè)整數(shù)整數(shù)n,要求用以上的數(shù)和運(yùn)算符,以最少,要求用以上的數(shù)和運(yùn)算符,以最少的運(yùn)算次數(shù)產(chǎn)生出的運(yùn)算次數(shù)產(chǎn)生出n。 例如:例如:n
18、=7,7=7,(0次運(yùn)算)次運(yùn)算)n=93,93=13*7+2 (2次運(yùn)算次運(yùn)算 )。)。 例 數(shù)值計(jì)算NJOI(1)數(shù)據(jù)的結(jié)構(gòu):參加運(yùn)算的數(shù)據(jù)、參加運(yùn)算)數(shù)據(jù)的結(jié)構(gòu):參加運(yùn)算的數(shù)據(jù)、參加運(yùn)算的符號(hào)的符號(hào)可以用常量數(shù)組可以用常量數(shù)組 data12,data23,參與運(yùn)算數(shù)據(jù)、,參與運(yùn)算數(shù)據(jù)、符號(hào)順序符號(hào)順序 (2)每步參加運(yùn)算的數(shù)據(jù)及運(yùn)算符號(hào))每步參加運(yùn)算的數(shù)據(jù)及運(yùn)算符號(hào) x, y , t:被加數(shù)、加數(shù),結(jié)果(:被加數(shù)、加數(shù),結(jié)果(x ),),t :從:從哪一步計(jì)算到此。哪一步計(jì)算到此。 分析算法模式NJOI給出一個(gè)整數(shù)給出一個(gè)整數(shù)n(n1030)和和k個(gè)變換規(guī)則(個(gè)變換規(guī)則(k=R and 反面?zhèn)€數(shù)反面?zhèn)€數(shù)=5-R num=R and (10-num)=5-R num=R and num-R=5 0=num-R=5 R=05翻幣問(wèn)題NJOI 問(wèn)題求解模式:狀態(tài)問(wèn)題求解模式:狀態(tài)A-狀態(tài)狀態(tài)B且且AB同同質(zhì)質(zhì) 正向隊(duì)列正向隊(duì)列Q1(隊(duì)列首為起始狀態(tài)(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度全地形挖掘機(jī)械購(gòu)置合同
- 2025年度原木深加工產(chǎn)品研發(fā)合作協(xié)議
- 2023-2024學(xué)年安徽省六安市高二下學(xué)期6月月考?xì)v史試卷
- 2025年能源互聯(lián)網(wǎng)策劃合作發(fā)展共識(shí)協(xié)議
- 2025年公共設(shè)施改善合作協(xié)議
- 2025年自營(yíng)批發(fā)服務(wù)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 2025年企業(yè)合同管理咨詢協(xié)議
- 2025年飛機(jī)燃油系統(tǒng)項(xiàng)目申請(qǐng)報(bào)告模范
- 2025年分店銷(xiāo)售委托合同實(shí)施效果評(píng)價(jià)
- 2025年鋼增強(qiáng)塑料復(fù)合管項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 企業(yè)自查報(bào)告范文
- 沐足店長(zhǎng)合同范例
- 《既有軌道交通盾構(gòu)隧道結(jié)構(gòu)安全保護(hù)技術(shù)規(guī)程》
- 初中物理22-23人大附中初三物理寒假作業(yè)及答案
- 2024年生態(tài)環(huán)境局公務(wù)員考試600題內(nèi)部選題庫(kù)(A卷)
- 科學(xué)計(jì)算語(yǔ)言Julia及MWORKS實(shí)踐 課件 6- Julia REPL的幾種模式
- 《物權(quán)法》本科題集
- 【基于單片機(jī)的超市自動(dòng)存儲(chǔ)柜的設(shè)計(jì)與實(shí)現(xiàn)(論文)8700字】
- 心尖球形綜合征
- 人教版小學(xué)六年級(jí)下冊(cè)音樂(lè)教案全冊(cè)
- DBJT 13-460-2024 既有多層住宅建筑增設(shè)電梯工程技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論