堡壘問題(有柵欄的搜尋,二維轉一維)

2021-08-28 13:31:20 字數 1091 閱讀 5153

時限:1000ms 記憶體限制:10000k  總時限:3000ms

描述城堡是乙個4×4的方格,為了保衛城堡,現需要在某些格仔裡修建一些堡壘。城堡中的某些格仔是牆,其餘格仔都是空格,堡壘只能建在空格裡,每個堡壘都可以向上下左右四個方向射擊,如果兩個堡壘在同一行或同一列,且中間沒有牆相隔,則兩個堡壘都會把對方打掉。問對於給定的一種狀態,最多能夠修建幾個堡壘。

輸入每個測例以乙個整數n(1<=n<=4)開始,表示城堡的大小。接下來是n行字元每行n個,『x』表示該位置是牆,『.』表示該位置是空格。n等於0標誌輸入結束。

輸出每個測例在單獨的一行輸出乙個整數:最多修建堡壘的個數。

輸入樣例

4.x..

....

xx..

....2xx

.x3.x.x.x

.x.3

....xx

.xx4

....

....

....

....

0輸出樣例51

524提示

借鑑:**

#include using namespace std;

int n,ans;

int a[4][4];

int canplace(int m)//因為是逐行搜尋,所以只要判斷在當前位置上方和左方即可。

else if(a[row][i]==1) break; //兩個都成立,就可以return 1了。

else if(a[row][i]==0) continue;

}for(i=row;i>=0;i--) //從下到上搜

if(a[i][col] == 1) break;

else if(a[i][col]==0) continue;

}return 1; //兩個都成立,就可以return 1了。

}void checkmax()

search(m+1);

}}int main()

}search(0); //每個點都搜吧,從當前這個點開始,就列舉了不同的開始順序

cout<}

return 0;

}

mysql二維轉一維 二維陣列轉為一維陣列

1.很多時候會遇到二維陣列,轉為一維陣列的時候會很苦惱,尤其是剛剛接觸php的phper。如下 將 arr轉化為一維陣列 arr array array uuid aaaaa array uuid bbbbb array uuid ccccc array uuid sssss array uuid ...

一維陣列轉二維陣列

假設你一維陣列的大小為100 你需要把它拆分為20 5的乙個二維矩陣。不妨這樣去實現 假設一維陣列的下標為x,可以把它在邏輯上轉換為二維陣列的下標 m x 5 n x 5 比如你要找第一行第二列的元素,那在一維陣列中就是a 1 轉化為二維座標就是b 0 1 其實多維陣列和一維陣列一樣,在計算機中都是...

一維陣列轉二維陣列

在專案上,會遇到將乙個一維陣列的資料,按板塊的分布排版這一類的需求。這種需求的資料往往就是陣列元素中含有相同字段,以這相同字段分類即可達到需求。以以下資料為例 將let oldarr 轉換為 let newarr 即將乙個一維陣列轉為二維陣列 不難發現,部分陣列元素字段存在相同的值,我們以type來...