第(3/3)頁 { inti,tx,ty; if(countn*n) { output_solution();輸出一個解 return; } for(i=0;i8;i++) { tx=hn[i].x;hn[]保存八個方位子結點 ty=hn[i].y; s[tx][ty]=count; dfs(tx,ty,count+1);遞歸調用 s[tx][ty]=0; } } 這樣做是完全可行的,因為它輸入的是全部解。 但是馬遍歷當8×8時解是非常之多,用天文數字形容也不為過,這樣一來我們的求解的過程就非常慢,并且出一個解的時間也會也非常慢。 當我們在每個結點對其子結點進行選取的時候,優先選擇‘出口’最小的進行搜索,‘出口’的意思是在這些子結點中它們的可行子結點的個數,也就是‘孫子’結點越少的越優先跳。 如果優先選擇出口多的子結點,那出口少的子結點就會越來越多,很可能出現‘死’結點 這樣對下面的搜索純粹是徒勞,這樣就會浪費很多無用的時間。 反過來如果每次都優先選擇出口少的結點跳,那出口少的結點就會越來越少,這樣跳成功的機會就更大一些。 ....... 蘇牧:“。。。。” 他的腦海中再次緩緩的出現了一堆問號。 完全沒想到居然會有這么大的跨越。 看著僅僅只有一個小題,卻是密密麻麻的解析,蘇牧突然明白了為什么數學奧賽參加的人那么多,信息學奧賽參加的人卻那么少。 這東西,確定是適合青少年做的?? 不會禿頂嗎?? ...... ps:因為要開始上網課了...要準備的東西挺多的,后面也會慢慢忙起來,所以更新時間偶爾會些變化,但是每天兩更應該可以保持住... ps2:弱弱的求幾張推薦票。 第(3/3)頁