c133. 00639 - Don't Get Rooked
標籤 :
通過比率 : 136人/154人 ( 88% ) [非即時]
評分方式:
Strictly

最近更新 : 2015-08-28 15:00

內容

在西洋棋中,城堡(rook)可以水平或垂直的移動任意格。在這個問題中,我們想要知道在一個小棋盤(最多 4x4)最多可以放置多少個城堡,並且這些城堡不會處於可以互相攻擊的狀態。比較特別的是在棋盤中有些格子放有牆,這些牆會阻擋城堡的行進路線。所以我們 可以說一個棋盤若處於一種「合法」的狀態,那表示不會有2個城堡處於同一列或同一行,除非他們之間至少存在一個牆把他們隔開。

以下以下的圖顯示了五個相同的棋盤。第一個棋盤是空的。第二、三個棋盤是「合法」的狀態。第四、五個棋盤是「不合法」的狀態。對這個棋盤而言,最多可以放置 5 個城堡,並且棋盤仍處於「合法」的狀態(第二個圖是一種安排城堡的方式,但是還有其他的方式)。

你的任務是寫一個程式,給你一個棋盤的描述,請你算出最多可以放置多少個城堡,並且棋盤仍處於「合法」的狀態。

輸入說明

輸入含有多組測試資料。每組測試資料的第一列有 1 個整數 n,代表棋盤的大小(1 <= n <= 4),接下來的 n 列描述這個棋盤。'.' 代表空白格,'X'代表牆。輸入中不會有空白存在。

當 n=0 時代表輸入結束。請參考Sample Input。

輸出說明

對每一組測試資料,輸出最多可以放置多少個城堡,並且棋盤仍處於「合法」的狀態。

範例輸入 #1
4
.X..
....
XX..
....
2
XX
.X
3
.X.
X.X
.X.
3
...
.XX
.XX
4
....
....
....
....
0
範例輸出 #1
5
1
5
2
4
測資資訊:
記憶體限制: 512 MB
提示 :

* Luck 貓翻譯

標籤:
出處:
UVa639

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」