最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

藍(lán)橋杯學(xué)習(xí)——方格分割

2022-03-21 20:54 作者:長舟泛歌  | 我要投稿

一、解題思路

?題目為如圖1所示的6×6網(wǎng)格,需要將其分為完全相同的兩部分。開始我想到從某個角開始分割,嘗試無果后,得知可以用深搜。將網(wǎng)格線從上到下,從左到右標(biāo)號為0~6。從(3,3)點觀察發(fā)現(xiàn),兩邊區(qū)域呈中心對稱,故可以通過深搜一邊得到兩邊都分割好的結(jié)果。由于中心對稱且搜索時向上向下向左向右都會進(jìn)行搜索,有一些結(jié)果會重合,比如一直向上搜索和一直向下搜索,所以最終結(jié)果要除以4。

圖一? 題目方格

二、深搜思路

本題不同于數(shù)據(jù)結(jié)構(gòu)中學(xué)過的簡單深度搜索遍歷,課中利用鄰接矩陣或者鄰接表實現(xiàn)搜索,這里用坐標(biāo)加一減一來實現(xiàn)遍歷,通過visit數(shù)組來確認(rèn)是否走過這一格點(需要注意,在每次深搜的末尾,需要將visit數(shù)組置零,因為從一個格點走向另一個格點有不同的走法(詳情可看圖二),如果不清零搜索回到前置格點后,則無法記錄另一種走法得到的遍歷結(jié)果)。

圖二

了解這些后開始寫搜索代碼我們在每次搜索時都會進(jìn)行向上、向下,向左和向右的遞歸搜索并且將此時搜索到的點的visit數(shù)組置一,代表已經(jīng)走過了(但并不是不會再走了,而是指在本次搜索路徑中,這個格點已經(jīng)走過了)并且在向四個方向都搜索過之后將visit數(shù)組置零(意思是回到之前的格點,這個格點又可以走了)。代碼如下

遞歸肯定有返回,我們在所有方向都搜索了一遍后返回,還有一個返回點時在深搜函數(shù)開頭:如果搜索到了邊界,那么就代表分割完成了,也要返回。代碼如下

三、main函數(shù)

主要是要想到深度搜索,main函數(shù)中倒是很簡單。由于visit是二維數(shù)組,所以要手動初始化,這里采用了最基礎(chǔ)的方法雙重for循環(huán)。然后在深搜之后,就可以輸出答案啦。

四、完整代碼

五、遇到的問題

開始的時候?qū)isit數(shù)組置一寫到了邊界返回的前面,這樣導(dǎo)致邊界點visit置一后沒有置零直接返回了,下一次搜索就不會再次進(jìn)行到這個邊界點了

六、參考資料

https://blog.csdn.net/shmily_ke/article/details/122567442


第一次寫,有什么問題請盡管且一定提,謝謝大家?。。?!

藍(lán)橋杯學(xué)習(xí)——方格分割的評論 (共 條)

分享到微博請遵守國家法律
彭水| 太湖县| 青海省| 旺苍县| 新安县| 巴中市| 岑溪市| 宜州市| 廉江市| 神农架林区| 介休市| 侯马市| 甘孜| 华蓥市| 澄迈县| 安达市| 汉沽区| 凤山市| 达孜县| 砀山县| 天镇县| 廉江市| 宁陕县| 夏邑县| 兴化市| 崇信县| 望城县| 昭觉县| 平潭县| 台南县| 石首市| 车致| 冷水江市| 灵璧县| 淮北市| 东平县| 康保县| 峨眉山市| 二连浩特市| 辽宁省| 德江县|