演算法練習 NOJ 1006 堡壘問題

2021-07-11 00:16:36 字數 925 閱讀 7246

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

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

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

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

輸入樣例

4 .x..

…. xx..

…. 2

xx .x

3 .x.

x.x

.x.

3 …

.xx

.xx

4 ….

…. ….

…. 0

輸出樣例

5 1

5 2

4

#include

char arr[4][4]=;

int n,max=0;

void checkmax()

int canplace(int m)//判斷是否能將arr[m/n][m%n]置為堡壘

}void search(int m)

else search(m+1);//不將arr[m/n][m%n]置為堡壘

}}int main()

search(0);

printf("%d\n",max);

max=0;

scanf("%d",&n);

getchar(); }

return

0;}

NOJ 1006 堡壘問題

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

noj 1006 多項式乘法

對於輸入,由於是按指數遞減輸入的,故我們只需按照輸入順序進行儲存即可。對待乙個輸入 1.如果當前多項式為空,那麼將此項放入第一項 2.如果當前多項式不為空 3.如果有指數相同的項,那麼將此項與指數相同的項合併,如果係數變為0,則將此項刪除。然後多項式乘法,即將第乙個多項式的項和第二個多項式每一項分別...

演算法練習 NOJ 1005 裝載問題

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述有兩艘船,載重量分別是c1 c2,n個貨櫃,重量是wi i 1 n 且所有貨櫃的總重量不超過c1 c2。確定是否有可能將所有貨櫃全部裝入兩艘船。輸入多個測例,每個測例的輸入佔兩行。第一行一次是c1 c2和n n 10 第二行n個...